diff --git a/frontend/src/lib/components/apps/components/display/AppIcon.svelte b/frontend/src/lib/components/apps/components/display/AppIcon.svelte index 42f9e21d5f..fca0b3ec54 100644 --- a/frontend/src/lib/components/apps/components/display/AppIcon.svelte +++ b/frontend/src/lib/components/apps/components/display/AppIcon.svelte @@ -5,6 +5,7 @@ import { concatCustomCss } from '../../utils' import { AlignWrapper, InputValue } from '../helpers' import { loadIcon } from '../icon' + import InitializeComponent from '../helpers/InitializeComponent.svelte' export let id: string export let horizontalAlignment: 'left' | 'center' | 'right' | undefined = 'left' @@ -38,6 +39,8 @@ + + + + {#each Object.keys(components['imagecomponent'].initialData.configuration) as key (key)} + + {#if render}
+ + {#if render}
{#if source && zoom} diff --git a/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte b/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte new file mode 100644 index 0000000000..e9acd1e94b --- /dev/null +++ b/frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte @@ -0,0 +1,17 @@ + diff --git a/frontend/src/lib/components/apps/components/helpers/NonRunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/NonRunnableComponent.svelte index f8eda426d3..0478910da0 100644 --- a/frontend/src/lib/components/apps/components/helpers/NonRunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/NonRunnableComponent.svelte @@ -4,6 +4,7 @@ import type { Output } from '../../rx' import type { AppViewerContext } from '../../types' import InputValue from './InputValue.svelte' + import InitializeComponent from './InitializeComponent.svelte' export let componentInput: AppInput export let id: string @@ -25,6 +26,8 @@ $: result && outputs && setOutput(result) + + {#if componentInput.type !== 'runnable'} {/if} diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index 43382674c7..a2ad55a79e 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -8,7 +8,7 @@ import { classNames, defaultIfEmptyString, emptySchema, sendUserToast } from '$lib/utils' import { deepEqual } from 'fast-equals' import { Bug } from 'lucide-svelte' - import { createEventDispatcher, getContext } from 'svelte' + import { createEventDispatcher, getContext, onDestroy } from 'svelte' import type { AppInputs, Runnable } from '../../inputType' import type { Output } from '../../rx' import type { AppViewerContext, InlineScript } from '../../types' @@ -58,6 +58,16 @@ await executeComponent(true, inlineScript) } } + + if (!$worldStore.initializedComponents.includes(id)) { + console.log('adding', id) + $worldStore.initializedComponents = [...$worldStore.initializedComponents, id] + } + + onDestroy(() => { + $worldStore.initializedComponents = $worldStore.initializedComponents.filter((c) => c !== id) + }) + $runnableComponents = $runnableComponents let args: Record | undefined = undefined diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte index 90de58cefb..c2392111e8 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte @@ -8,6 +8,7 @@ import RunnableComponent from './RunnableComponent.svelte' import { goto } from '$app/navigation' import { sendUserToast } from '$lib/utils' + import InitializeComponent from './InitializeComponent.svelte' export let componentInput: AppInput | undefined export let id: string @@ -96,6 +97,7 @@ {#if componentInput === undefined} + {:else if componentInput.type === 'runnable' && isRunnableDefined(componentInput)} + + + + {#if inputType === 'date'} + + {#if render}
+ +
+ + ($selectedComponent = [id])} diff --git a/frontend/src/lib/components/apps/components/inputs/AppRangeInput.svelte b/frontend/src/lib/components/apps/components/inputs/AppRangeInput.svelte index a95d95e959..e283e6ab00 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppRangeInput.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppRangeInput.svelte @@ -7,6 +7,7 @@ import { concatCustomCss } from '../../utils' import AlignWrapper from '../helpers/AlignWrapper.svelte' import InputValue from '../helpers/InputValue.svelte' + import InitializeComponent from '../helpers/InitializeComponent.svelte' export let id: string export let configuration: RichConfigurations @@ -54,6 +55,8 @@ bind:value={values[1]} /> + +
diff --git a/frontend/src/lib/components/apps/components/inputs/AppSelect.svelte b/frontend/src/lib/components/apps/components/inputs/AppSelect.svelte index 51f7d4289a..607d45798b 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppSelect.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppSelect.svelte @@ -8,6 +8,7 @@ import InputValue from '../helpers/InputValue.svelte' import { SELECT_INPUT_DEFAULT_STYLE } from '../../../../defaults' import { initOutput } from '../../editor/appUtils' + import InitializeComponent from '../helpers/InitializeComponent.svelte' export let id: string export let configuration: RichConfigurations @@ -103,6 +104,8 @@ + +
+
diff --git a/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte b/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte index c8708598ec..0d124620a1 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte @@ -6,6 +6,7 @@ import { concatCustomCss } from '../../utils' import AlignWrapper from '../helpers/AlignWrapper.svelte' import InputValue from '../helpers/InputValue.svelte' + import InitializeComponent from '../helpers/InitializeComponent.svelte' export let id: string export let configuration: RichConfigurations @@ -44,6 +45,8 @@ + + {#if inputType === 'textarea'}