From 26c01f43f9d02461efab9cda18abdd520ac5977d Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Mon, 16 Sep 2024 17:28:30 +0200 Subject: [PATCH] drag & drop file to export/import tab --- .../impexp/ImportExportConfigurator.svelte | 42 +++++++------------ packages/web/src/tabs/ImportExportTab.svelte | 19 +++++++-- 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/packages/web/src/impexp/ImportExportConfigurator.svelte b/packages/web/src/impexp/ImportExportConfigurator.svelte index 2c161072..a155a895 100644 --- a/packages/web/src/impexp/ImportExportConfigurator.svelte +++ b/packages/web/src/impexp/ImportExportConfigurator.svelte @@ -67,10 +67,12 @@ import SourceName from './SourceName.svelte'; import SourceTargetConfig from './SourceTargetConfig.svelte'; + import useEffect from '../utility/useEffect'; // export let uploadedFile = undefined; // export let openedFile = undefined; export let previewReaderStore; + export let isTabActive; const { values, setFieldValue } = getFormContext(); @@ -113,36 +115,20 @@ previewSource.set ); // setFieldValue('sourceList', [...(sourceList || []), file.originalName]); - }; + } - onMount(() => { - setUploadListener(addUploadedFile); - // if (uploadedFile) { - // handleUpload(uploadedFile); - // } - // if (openedFile) { - // handleUpload(openedFile); - // // addFilesToSourceList( - // // $extensions, - // // [ - // // { - // // fileName: openedFile.filePath, - // // shortName: openedFile.shortName, - // // }, - // // ], - // // $values, - // // values, - // // !sourceList || sourceList.length == 0 ? openedFile.storageType : null, - // // previewSource.set - // // ); - // } - - return () => { - setUploadListener(null); - }; + $: effectActiveTab = useEffect(() => { + if (isTabActive) { + setUploadListener(addUploadedFile); + return () => { + setUploadListener(null); + }; + } else { + return () => {}; + } }); - // engine={sourceEngine} - // {setPreviewSource} + + $effectActiveTab;
diff --git a/packages/web/src/tabs/ImportExportTab.svelte b/packages/web/src/tabs/ImportExportTab.svelte index 9bccc6be..5c37f58c 100644 --- a/packages/web/src/tabs/ImportExportTab.svelte +++ b/packages/web/src/tabs/ImportExportTab.svelte @@ -16,7 +16,14 @@ import { getDefaultFileFormat } from '../plugins/fileformats'; import RunnerOutputFiles from '../query/RunnerOutputFiles.svelte'; import SocketMessageView from '../query/SocketMessageView.svelte'; - import { currentArchive, currentDatabase, extensions, visibleWidgetSideBar, selectedWidget } from '../stores'; + import { + currentArchive, + currentDatabase, + extensions, + visibleWidgetSideBar, + selectedWidget, + activeTabId, + } from '../stores'; import { apiCall, apiOff, apiOn } from '../utility/api'; import createRef from '../utility/createRef'; import openNewTab from '../utility/openNewTab'; @@ -104,7 +111,7 @@ } } - $: effect = useEffect(() => registerRunnerDone(runnerId)); + $: effectRunner = useEffect(() => registerRunnerDone(runnerId)); function registerRunnerDone(rid) { if (rid) { @@ -117,7 +124,7 @@ } } - $: $effect; + $: $effectRunner; const handleRunnerDone = () => { busy = false; @@ -172,7 +179,11 @@
- + {#if busy}