diff --git a/frontend/src/lib/components/apps/components/display/AppHtml.svelte b/frontend/src/lib/components/apps/components/display/AppHtml.svelte index a5277c0829..698f61698e 100644 --- a/frontend/src/lib/components/apps/components/display/AppHtml.svelte +++ b/frontend/src/lib/components/apps/components/display/AppHtml.svelte @@ -59,7 +59,7 @@ title="sandbox" srcdoc={result ? '` + result - : 'No html'} + : ''} /> {/key} diff --git a/frontend/src/lib/components/apps/components/display/AppText.svelte b/frontend/src/lib/components/apps/components/display/AppText.svelte index 93c8b4e8dd..5a03ba309a 100644 --- a/frontend/src/lib/components/apps/components/display/AppText.svelte +++ b/frontend/src/lib/components/apps/components/display/AppText.svelte @@ -226,7 +226,7 @@ )} > {String(result)} - {#if resolvedConfig.tooltip != ''} + {#if resolvedConfig.tooltip && resolvedConfig.tooltip != ''} {resolvedConfig.tooltip} {/if} {#if resolvedConfig.copyButton && result} diff --git a/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte b/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte index e9acd1e94b..f983857059 100644 --- a/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte @@ -3,15 +3,15 @@ import type { AppViewerContext } from '../../types' export let id: string - const { worldStore } = getContext('AppViewerContext') + const { initialized } = getContext('AppViewerContext') onMount(() => { - if (!$worldStore.initializedComponents.includes(id)) { - $worldStore.initializedComponents = [...$worldStore.initializedComponents, id] + if (!$initialized.initializedComponents.includes(id)) { + $initialized.initializedComponents = [...$initialized.initializedComponents, id] } }) onDestroy(() => { - $worldStore.initializedComponents = $worldStore.initializedComponents.filter((c) => c !== id) + $initialized.initializedComponents = $initialized.initializedComponents.filter((c) => c !== id) }) diff --git a/frontend/src/lib/components/apps/components/helpers/InputValue.svelte b/frontend/src/lib/components/apps/components/helpers/InputValue.svelte index f264e45ce6..37ee0758d5 100644 --- a/frontend/src/lib/components/apps/components/helpers/InputValue.svelte +++ b/frontend/src/lib/components/apps/components/helpers/InputValue.svelte @@ -48,6 +48,7 @@ if (firstDebounce) { firstDebounce = false cb() + return } if (timeout) { clearTimeout(timeout) diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index cd39fee424..08c3aa2d78 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -48,7 +48,8 @@ mode, stateId, state, - componentControl + componentControl, + initialized } = getContext('AppViewerContext') const dispatch = createEventDispatcher() @@ -61,12 +62,12 @@ } } - if (!$worldStore.initializedComponents.includes(id)) { - $worldStore.initializedComponents = [...$worldStore.initializedComponents, id] + if (!$initialized.initializedComponents.includes(id)) { + $initialized.initializedComponents = [...$initialized.initializedComponents, id] } onDestroy(() => { - $worldStore.initializedComponents = $worldStore.initializedComponents.filter((c) => c !== id) + $initialized.initializedComponents = $initialized.initializedComponents.filter((c) => c !== id) }) $runnableComponents = $runnableComponents @@ -112,7 +113,7 @@ function refreshIfAutoRefresh(_src: string) { const refreshEnabled = autoRefresh && ((recomputeOnInputChanged ?? true) || refreshOn?.length > 0) - if (refreshEnabled && $worldStore.initialized) { + if (refreshEnabled && $initialized.initialized) { setDebouncedExecute() } } diff --git a/frontend/src/lib/components/apps/editor/AppEditor.svelte b/frontend/src/lib/components/apps/editor/AppEditor.svelte index f294e6f1d9..6b3b0da142 100644 --- a/frontend/src/lib/components/apps/editor/AppEditor.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditor.svelte @@ -80,6 +80,7 @@ worldStore, app: appStore, summary: summaryStore, + initialized: writable({ initialized: false, initializedComponents: [] }), selectedComponent, mode, connectingInput, diff --git a/frontend/src/lib/components/apps/editor/AppPreview.svelte b/frontend/src/lib/components/apps/editor/AppPreview.svelte index d222d9af27..3539ed07aa 100644 --- a/frontend/src/lib/components/apps/editor/AppPreview.svelte +++ b/frontend/src/lib/components/apps/editor/AppPreview.svelte @@ -48,6 +48,7 @@ const parentWidth = writable(0) setContext('AppViewerContext', { worldStore: buildWorld(context), + initialized: writable({ initialized: false, initializedComponents: [] }), app: appStore, summary: writable(summary), selectedComponent, diff --git a/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte b/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte index c95d77a61f..a00a2f6650 100644 --- a/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte +++ b/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte @@ -6,7 +6,7 @@ import type { AppViewerContext } from '../types' import { allItems } from '../utils' - const { runnableComponents, app, worldStore } = getContext('AppViewerContext') + const { runnableComponents, app, initialized } = getContext('AppViewerContext') let loading: boolean = false let timeout: NodeJS.Timer | undefined = undefined let interval: number | undefined = undefined @@ -14,7 +14,7 @@ let firstLoad = false $: !firstLoad && - $worldStore.initializedComponents?.length == + $initialized.initializedComponents?.length == allItems($app.grid, $app.subgrids).length + $app.hiddenInlineScripts.length && refresh() $: componentNumber = Object.values($runnableComponents).filter((x) => x.autoRefresh).length @@ -41,7 +41,7 @@ function refresh() { let isFirstLoad = false if (!firstLoad) { - $worldStore.initialized = true + $initialized.initialized = true firstLoad = true isFirstLoad = true } diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte index 737136c08e..40691f1520 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte @@ -21,9 +21,9 @@ input: undefined, hoveredComponent: undefined } + $app = $app + $worldStore = $worldStore } - $app = $app - $worldStore = $worldStore } $: $connectingInput && applyConnection() diff --git a/frontend/src/lib/components/apps/types.ts b/frontend/src/lib/components/apps/types.ts index fe80803b69..a9eea0984f 100644 --- a/frontend/src/lib/components/apps/types.ts +++ b/frontend/src/lib/components/apps/types.ts @@ -133,6 +133,10 @@ export type AppViewerContext = { worldStore: Writable app: Writable summary: Writable + initialized: Writable<{ + initializedComponents: string[] + initialized: boolean + }> selectedComponent: Writable mode: Writable connectingInput: Writable