From 6207c439b5f1c78dc04e8d5a49f8f570b5bdbf19 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Mon, 10 Apr 2023 17:12:14 +0200 Subject: [PATCH] fix(frontend): fix app init issue --- .../apps/components/display/AppIcon.svelte | 3 +++ .../apps/components/display/AppImage.svelte | 3 +++ .../apps/components/display/AppMap.svelte | 3 +++ .../apps/components/display/AppPdf.svelte | 3 +++ .../helpers/InitializeComponent.svelte | 17 +++++++++++++++++ .../helpers/NonRunnableComponent.svelte | 3 +++ .../components/helpers/RunnableComponent.svelte | 12 +++++++++++- .../components/helpers/RunnableWrapper.svelte | 2 ++ .../apps/components/inputs/AppCheckbox.svelte | 3 +++ .../apps/components/inputs/AppDateInput.svelte | 3 +++ .../apps/components/inputs/AppFileInput.svelte | 3 +++ .../components/inputs/AppMultiSelect.svelte | 3 +++ .../components/inputs/AppNumberInput.svelte | 3 +++ .../apps/components/inputs/AppRangeInput.svelte | 3 +++ .../apps/components/inputs/AppSelect.svelte | 3 +++ .../components/inputs/AppSliderInputs.svelte | 2 ++ .../apps/components/inputs/AppTextInput.svelte | 3 +++ .../inputs/currency/AppCurrencyInput.svelte | 3 +++ .../apps/components/layout/AppContainer.svelte | 3 +++ .../apps/components/layout/AppDivider.svelte | 3 +++ .../apps/components/layout/AppDrawer.svelte | 3 +++ .../apps/components/layout/AppSplitpanes.svelte | 3 +++ .../apps/components/layout/AppTabs.svelte | 3 +++ .../apps/editor/RecomputeAllComponents.svelte | 3 ++- .../components/apps/editor/SettingsPanel.svelte | 2 +- .../src/lib/components/apps/editor/appUtils.ts | 1 - .../settingsPanel/SelectedRunnable.svelte | 7 +++++-- .../BackgroundScriptTriggerList.svelte | 6 ++++-- frontend/src/lib/components/apps/rx.ts | 4 ++-- .../src/routes/(root)/(logged)/+page.svelte | 2 +- 30 files changed, 104 insertions(+), 11 deletions(-) create mode 100644 frontend/src/lib/components/apps/components/helpers/InitializeComponent.svelte 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'}