From 3305481d5d4ce598ceb57256cea851869cdaf25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= <43071496+adam-kov@users.noreply.github.com> Date: Thu, 2 Feb 2023 17:55:11 +0100 Subject: [PATCH] feat(frontend): App initial loading animations (#1176) * feat(frontend): App initial loading animations * fix(frontend): Optional prop --- .../src/lib/components/TestJobLoader.svelte | 3 - .../apps/components/DisplayComponent.svelte | 3 +- .../components/dataDisplay/AppBarChart.svelte | 5 +- .../components/dataDisplay/AppHtml.svelte | 3 +- .../components/dataDisplay/AppPieChart.svelte | 4 +- .../dataDisplay/AppScatterChart.svelte | 5 +- .../components/dataDisplay/AppText.svelte | 5 +- .../dataDisplay/AppTimeseries.svelte | 5 +- .../components/dataDisplay/PlotlyHtml.svelte | 4 +- .../dataDisplay/VegaLiteHtml.svelte | 3 +- .../helpers/RunnableComponent.svelte | 3 +- .../components/helpers/RunnableWrapper.svelte | 6 ++ .../apps/components/table/AppTable.svelte | 3 +- .../apps/editor/ComponentEditor.svelte | 28 +++++++- .../src/lib/components/apps/editorUtils.ts | 68 ++++++++----------- frontend/src/lib/components/apps/utils.ts | 10 +-- 16 files changed, 89 insertions(+), 69 deletions(-) diff --git a/frontend/src/lib/components/TestJobLoader.svelte b/frontend/src/lib/components/TestJobLoader.svelte index 2c8cd5b5cf..de48a94ae0 100644 --- a/frontend/src/lib/components/TestJobLoader.svelte +++ b/frontend/src/lib/components/TestJobLoader.svelte @@ -109,12 +109,10 @@ console.error(err) } } - console.debug('cancelled') } export async function clearCurrentJob() { if (currentId) { - console.debug('clear') job = undefined await cancelJob() } @@ -180,7 +178,6 @@ async function syncer(id: string): Promise { if (currentId != id) { - console.debug('stop') return } syncIteration++ diff --git a/frontend/src/lib/components/apps/components/DisplayComponent.svelte b/frontend/src/lib/components/apps/components/DisplayComponent.svelte index 544f8c80ab..0acbb65dba 100644 --- a/frontend/src/lib/components/apps/components/DisplayComponent.svelte +++ b/frontend/src/lib/components/apps/components/DisplayComponent.svelte @@ -7,6 +7,7 @@ export let id: string export let componentInput: AppInput | undefined + export let initializing const requireHtmlApproval = getContext(IS_APP_PUBLIC_CONTEXT_KEY) let result: any = undefined @@ -14,7 +15,7 @@ export const staticOutputs: string[] = ['result', 'loading'] - +
Results
diff --git a/frontend/src/lib/components/apps/components/dataDisplay/AppBarChart.svelte b/frontend/src/lib/components/apps/components/dataDisplay/AppBarChart.svelte index f60e92ccc0..86cfb6bc68 100644 --- a/frontend/src/lib/components/apps/components/dataDisplay/AppBarChart.svelte +++ b/frontend/src/lib/components/apps/components/dataDisplay/AppBarChart.svelte @@ -1,6 +1,5 @@
- + {#if !Plotly}
diff --git a/frontend/src/lib/components/apps/components/dataDisplay/VegaLiteHtml.svelte b/frontend/src/lib/components/apps/components/dataDisplay/VegaLiteHtml.svelte index df15701a6e..e6bed084ff 100644 --- a/frontend/src/lib/components/apps/components/dataDisplay/VegaLiteHtml.svelte +++ b/frontend/src/lib/components/apps/components/dataDisplay/VegaLiteHtml.svelte @@ -8,6 +8,7 @@ export let id: string export let componentInput: AppInput | undefined export let configuration: Record + export let initializing export const staticOutputs: string[] = ['result', 'loading'] @@ -52,7 +53,7 @@
- + {#if !vegaEmbed}
diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index c3adddfca6..668940e995 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -24,6 +24,7 @@ export let defaultUserInput = false export let flexWrap = false export let wrapperClass = '' + export let initializing: boolean | undefined = undefined const { worldStore, @@ -305,7 +306,7 @@ />
- {#if autoRefresh === true} + {#if !initializing && autoRefresh === true}
diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte index 40162bd156..98864836ec 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableWrapper.svelte @@ -9,6 +9,7 @@ export let componentInput: AppInput | undefined export let id: string export let result: any = undefined + export let initializing = true export let extraQueryParams: Record = {} export let autoRefresh: boolean = true @@ -19,6 +20,10 @@ export let runnableClass = '' const { staticExporter, noBackend } = getContext('AppEditorContext') + + $: if(initializing && result) { + initializing = false + } if (noBackend && componentInput?.type == 'runnable') { result = componentInput?.['value'] @@ -46,6 +51,7 @@ {id} {extraQueryParams} {forceSchemaDisplay} + {initializing} wrapperClass={runnableClass} > diff --git a/frontend/src/lib/components/apps/components/table/AppTable.svelte b/frontend/src/lib/components/apps/components/table/AppTable.svelte index ff5e574bcf..965dfbe3af 100644 --- a/frontend/src/lib/components/apps/components/table/AppTable.svelte +++ b/frontend/src/lib/components/apps/components/table/AppTable.svelte @@ -18,6 +18,7 @@ export let componentInput: AppInput | undefined export let configuration: Record export let actionButtons: (BaseAppComponent & ButtonComponent)[] + export let initializing export const staticOutputs: string[] = [ 'selectedRow', @@ -135,7 +136,7 @@ - + {#if Array.isArray(result) && result.every(isObject)}
{#if search !== 'Disabled'} diff --git a/frontend/src/lib/components/apps/editor/ComponentEditor.svelte b/frontend/src/lib/components/apps/editor/ComponentEditor.svelte index 275ff85d9e..5a3100d012 100644 --- a/frontend/src/lib/components/apps/editor/ComponentEditor.svelte +++ b/frontend/src/lib/components/apps/editor/ComponentEditor.svelte @@ -1,11 +1,13 @@
{:else if component.type === 'barchartcomponent'} {:else if component.type === 'timeseriescomponent'} {:else if component.type === 'htmlcomponent'} {:else if component.type === 'vegalitecomponent'} {:else if component.type === 'plotlycomponent'} {:else if component.type === 'scatterchartcomponent'} {:else if component.type === 'piechartcomponent'} {:else if component.type === 'tablecomponent'} @@ -165,3 +178,12 @@ {/if}
+{#if initializing} +
+ + Loading +
+{/if} diff --git a/frontend/src/lib/components/apps/editorUtils.ts b/frontend/src/lib/components/apps/editorUtils.ts index c1426c7262..23cc9a78e6 100644 --- a/frontend/src/lib/components/apps/editorUtils.ts +++ b/frontend/src/lib/components/apps/editorUtils.ts @@ -110,49 +110,44 @@ const DEFAULT_CODES: Partial