From c3b536b1b8069898131768867a187b186b21e537 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Wed, 16 Oct 2024 19:42:52 +0200 Subject: [PATCH] fix(app): make s3 uploads persistent across tabs change --- .../apps/components/inputs/AppS3FileInput.svelte | 10 +++++++--- .../apps/components/inputs/AppTextInput.svelte | 2 +- .../lib/components/common/fileUpload/FileUpload.svelte | 3 +-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/src/lib/components/apps/components/inputs/AppS3FileInput.svelte b/frontend/src/lib/components/apps/components/inputs/AppS3FileInput.svelte index 002ec519fbcd2..32f99024c6281 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppS3FileInput.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppS3FileInput.svelte @@ -44,8 +44,9 @@ } } + let value: { path: string; filename: string }[] | undefined = undefined const outputs = initOutput($worldStore, id, { - result: [] as { path: string; filename: string }[] | undefined, + result: value ?? ([] as { path: string; filename: string }[] | undefined), loading: false, jobId: undefined }) @@ -124,15 +125,18 @@ customResourceType="s3" customClass={css?.container?.class} customStyle={css?.container?.style} + {fileUploads} {workspace} on:addition={(evt) => { const curr = outputs.result.peak() - outputs.result.set(curr.concat(evt.detail)) + value = curr.concat(evt.detail) + outputs.result.set(value) onFileChange?.forEach((id) => $runnableComponents?.[id]?.cb?.forEach((cb) => cb?.())) }} on:deletion={(evt) => { const curr = outputs.result.peak() - outputs.result.set(curr.filter((file) => file.path !== evt.detail?.path)) + value = curr.filter((file) => file.path !== evt.detail?.path) + outputs.result.set(value) }} {forceDisplayUploads} /> diff --git a/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte b/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte index b7cf25c245452..546125c41083a 100644 --- a/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte +++ b/frontend/src/lib/components/apps/components/inputs/AppTextInput.svelte @@ -43,7 +43,7 @@ let value: string | undefined = resolvedConfig.defaultValue let outputs = initOutput($worldStore, id, { - result: '' + result: value ?? '' }) onDestroy(() => { diff --git a/frontend/src/lib/components/common/fileUpload/FileUpload.svelte b/frontend/src/lib/components/common/fileUpload/FileUpload.svelte index 507bf8b6a7c7d..4ba06e3d99c9e 100644 --- a/frontend/src/lib/components/common/fileUpload/FileUpload.svelte +++ b/frontend/src/lib/components/common/fileUpload/FileUpload.svelte @@ -24,6 +24,7 @@ export let forceDisplayUploads: boolean = false export let defaultValue: string | undefined = undefined export let workspace: string | undefined = undefined + export let fileUploads: Writable = writable([]) const dispatch = createEventDispatcher() @@ -37,8 +38,6 @@ file?: File } - let fileUploads: Writable = writable([]) - async function handleChange(files: File[] | undefined) { for (const file of files ?? []) { uploadFileToS3(file, file.name)