diff --git a/frontend/src/lib/components/apps/components/form/AppForm.svelte b/frontend/src/lib/components/apps/components/form/AppForm.svelte index df2dd78688..ad6e61ed6a 100644 --- a/frontend/src/lib/components/apps/components/form/AppForm.svelte +++ b/frontend/src/lib/components/apps/components/form/AppForm.svelte @@ -54,7 +54,6 @@ ('AppEditorContext') + const { + worldStore, + runnableComponents, + workspace, + appPath, + isEditor, + jobs, + noBackend, + errorByComponent + } = getContext('AppEditorContext') onMount(() => { if (autoRefresh) { @@ -245,7 +252,14 @@ export async function runComponent() { await executeComponent() } + let lastStartedAt: number = Date.now() + + function recordError(error: string) { + $errorByComponent[id] = error + } + + $: result?.error && recordError(result.error) {#each Object.entries(fields ?? {}) as [key, v]} @@ -268,6 +282,11 @@ lastStartedAt = startedAt outputs.result?.set(testJob?.result) result = testJob.result + + if ($errorByComponent[id] && !result?.error) { + delete $errorByComponent[id] + $errorByComponent = $errorByComponent + } } } }} @@ -299,17 +318,6 @@ Please select a runnable - {:else if result?.error} -
- - See "Debug Runs" on the top right for more details -
{JSON.stringify(result.error, null, 4)}
-
- -
{:else}
diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte index e144020d2e..40162bd156 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte @@ -9,7 +9,6 @@ export let componentInput: AppInput | undefined export let id: string export let result: any = undefined - export let noMinH = false export let extraQueryParams: Record = {} export let autoRefresh: boolean = true @@ -47,7 +46,6 @@ {id} {extraQueryParams} {forceSchemaDisplay} - {noMinH} wrapperClass={runnableClass} > diff --git a/frontend/src/lib/components/apps/editor/AppEditor.svelte b/frontend/src/lib/components/apps/editor/AppEditor.svelte index 2c291cad89..c920d3c51b 100644 --- a/frontend/src/lib/components/apps/editor/AppEditor.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditor.svelte @@ -54,6 +54,7 @@ }) const runnableComponents = writable Promise>>({}) + const errorByComponent = writable>({}) setContext('AppEditorContext', { worldStore, @@ -72,7 +73,8 @@ isEditor: true, jobs: writable([]), staticExporter: writable({}), - noBackend: false + noBackend: false, + errorByComponent }) let timeout: NodeJS.Timeout | undefined = undefined diff --git a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte index fa9e67719f..a6f1da4f6d 100644 --- a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte @@ -57,7 +57,7 @@ export let policy: Policy - const { app, summary, mode, breakpoint, appPath, jobs, staticExporter } = + const { app, summary, mode, breakpoint, appPath, jobs, staticExporter, errorByComponent } = getContext('AppEditorContext') const loading = { publish: false, @@ -183,6 +183,7 @@ let testIsLoading = false $: selectedJobId && testJobLoader?.watchJob(selectedJobId) + $: hasErrors = Object.keys($errorByComponent).length > 0 @@ -243,12 +244,14 @@ {:else}
{#if job?.['running']} -
testJobLoader?.cancelJob()} > + Cancel +
{/if}
@@ -436,7 +439,7 @@