From 04e1b80cae04f027bcbe46e682c87848b4888374 Mon Sep 17 00:00:00 2001 From: Abhinav-grd Date: Thu, 8 Jul 2021 12:50:20 +0530 Subject: [PATCH] moved start logic to exportModal from exportInit --- src/components/ExportInit.tsx | 13 ++----------- src/components/ExportModal.tsx | 19 +++++++++++++++---- src/services/exportService.ts | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/components/ExportInit.tsx b/src/components/ExportInit.tsx index 91ccd57fb..d37cd3cbf 100644 --- a/src/components/ExportInit.tsx +++ b/src/components/ExportInit.tsx @@ -2,26 +2,17 @@ import { DeadCenter } from 'pages/gallery'; import React from 'react'; import { Button } from 'react-bootstrap'; import constants from 'utils/strings/constants'; -import { ExportStage } from './ExportModal'; interface Props { show: boolean onHide: () => void updateExportFolder: (newFolder: string) => void; - updateExportStage: (newState: ExportStage) => void; exportFolder: string - exportFiles: () => void + startExport: () => void exportSize: string; selectExportDirectory: () => void } export default function ExportInit(props: Props) { - const startExport = async () => { - if (!props.exportFolder) { - await props.selectExportDirectory(); - } - props.exportFiles(); - props.updateExportStage(ExportStage.INPROGRESS); - }; return ( <> @@ -35,7 +26,7 @@ export default function ExportInit(props: Props) { flex: 1, whiteSpace: 'nowrap', }} - onClick={startExport} + onClick={props.startExport} >{constants.START} diff --git a/src/components/ExportModal.tsx b/src/components/ExportModal.tsx index e3d4c4000..4d53bed61 100644 --- a/src/components/ExportModal.tsx +++ b/src/components/ExportModal.tsx @@ -79,7 +79,14 @@ export default function ExportModal(props: Props) { setData(LS_KEYS.EXPORT, { ...getData(LS_KEYS.EXPORT), time: newTime }); }; - const startExport = () => { + const startExport = async () => { + if (!exportFolder) { + const folderSelected = await selectExportDirectory(); + if (!folderSelected) { + // no-op as select folder aborted + return; + } + } updateExportStage(ExportStage.INPROGRESS); setExportStats({ current: 0, total: 0, failed: 0 }); exportService.exportFiles(setExportStats); @@ -87,7 +94,12 @@ export default function ExportModal(props: Props) { const selectExportDirectory = async () => { const newFolder = await exportService.selectExportDirectory(); - newFolder && updateExportFolder(newFolder); + if (newFolder) { + updateExportFolder(newFolder); + return true; + } else { + return false; + } }; const cancelExport = () => { @@ -111,8 +123,7 @@ export default function ExportModal(props: Props) { exportFolder={exportFolder} exportSize={exportSize} updateExportFolder={updateExportFolder} - exportFiles={startExport} - updateExportStage={updateExportStage} + startExport={startExport} selectExportDirectory={selectExportDirectory} /> ); diff --git a/src/services/exportService.ts b/src/services/exportService.ts index 3f64d6399..bfc7c5c20 100644 --- a/src/services/exportService.ts +++ b/src/services/exportService.ts @@ -61,7 +61,7 @@ class ExportService { try { const dir = getData(LS_KEYS.EXPORT).folder; if (!dir) { - // directory selector closed + // no-export folder set return; } const exportedFiles: Set = await this.ElectronAPIs.getExportedFiles(