diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index b4a095e2f9..01527d1faf 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -74,6 +74,7 @@ loading = false rejectCb(new Error('Canceled')) } + return p as CancelablePromise } @@ -350,6 +351,8 @@ delete $errorByComponent[previousJobId] $errorByComponent = $errorByComponent } + + donePromise?.() } function handleInputClick(e: CustomEvent) { @@ -389,7 +392,6 @@ if (startedAt > lastStartedAt) { lastStartedAt = startedAt setResult(e.detail.result) - donePromise?.() } } loading = false diff --git a/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte b/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte index a00a2f6650..e40e42bc1e 100644 --- a/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte +++ b/frontend/src/lib/components/apps/editor/RecomputeAllComponents.svelte @@ -46,17 +46,21 @@ isFirstLoad = true } loading = true - Promise.all( - Object.keys($runnableComponents).map((id) => { + + const promises = Object.keys($runnableComponents) + .map((id) => { if ( !$runnableComponents?.[id]?.autoRefresh && (!isFirstLoad || !$runnableComponents?.[id]?.refreshOnStart) ) { return } + return $runnableComponents?.[id]?.cb?.() }) - ).finally(() => { + .filter(Boolean) + + Promise.all(promises).finally(() => { loading = false }) } diff --git a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte index 3504611784..93bcb0a8eb 100644 --- a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +++ b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte @@ -217,15 +217,15 @@ on:click={() => { const newInlineScript = { content: `// read outputs and ctx - console.log(ctx.email) - - // access a global state store - if (!state.foo) { state.foo = 0 } - state.foo += 1 - - // you can also navigate (goto), recompute a script (recompute), or set a tab (setTab) - - return state.foo`, +console.log(ctx.email) + +// access a global state store +if (!state.foo) { state.foo = 0 } +state.foo += 1 + +// you can also navigate (goto), recompute a script (recompute), or set a tab (setTab) + +return state.foo`, language: 'frontend', path: 'frontend script', schema: undefined diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte index dc0f043f6a..f606384b69 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/ComponentTriggerList.svelte @@ -35,5 +35,10 @@ {onLoad} {recomputeOnInputChanged} id={$selectedComponent?.[0]} + shouldHideAddDependencyButton={[ + 'buttoncomponent', + 'formcomponent', + 'formbuttoncomponent' + ].includes(appComponent.type)} {onClick} /> diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte index ee3fa582ef..51966aae71 100644 --- a/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte +++ b/frontend/src/lib/components/apps/editor/settingsPanel/triggerLists/TriggerBadgesList.svelte @@ -12,6 +12,7 @@ export let onLoad: boolean = false export let id: string | undefined = undefined export let recomputeOnInputChanged: boolean = false + export let shouldHideAddDependencyButton: boolean = false const colors = { green: 'text-green-800 border-green-600 bg-green-100', @@ -133,7 +134,7 @@
Change on values
- {#if inlineScript?.language === 'frontend'} + {#if inlineScript?.language === 'frontend' && !shouldHideAddDependencyButton}