From 268dd311ae0915538d0c285ea0aa8d3861357482 Mon Sep 17 00:00:00 2001 From: Piotr Rogowski Date: Fri, 14 Oct 2022 14:50:13 +0200 Subject: [PATCH] Handle removal of invalid files --- src/hooks/useServerStorage.ts | 4 +--- src/pages/Upload.tsx | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/hooks/useServerStorage.ts b/src/hooks/useServerStorage.ts index 8a6258b..d920d19 100644 --- a/src/hooks/useServerStorage.ts +++ b/src/hooks/useServerStorage.ts @@ -60,9 +60,7 @@ const useServerStorage = () => { } catch (error) { Sentry.captureException(error); console.error(error); - - // suppress error, may happen on mobile - return Promise.resolve(); + return Promise.reject(error); } }; diff --git a/src/pages/Upload.tsx b/src/pages/Upload.tsx index d6712a9..085f498 100644 --- a/src/pages/Upload.tsx +++ b/src/pages/Upload.tsx @@ -354,18 +354,30 @@ const UploadPage = () => { }); }; - const removeFileFromStorage = async (fileId: string) => { + const removeFileFromStorage = async (fileId: string | null): Promise => { + if (!fileId) { + return false; + } + await removeFile(await getBucketId(currentUser!.$id), fileId); + + return true; }; const removeTuneFile = async () => { - await removeFileFromStorage(tuneFileId!); + if (!await removeFileFromStorage(tuneFileId!)) { + return; + } + await updateTune(tuneDocumentId!, { tuneFileId: null }); setTuneFileId(null); }; const removeLogFile = async (file: UploadFile) => { - await removeFileFromStorage(logFileIds.get(file.uid)!); + if (!await removeFileFromStorage(logFileIds.get(file.uid)!)) { + return; + } + logFileIds.delete(file.uid); const newValues = new Map(logFileIds); setLogFileIds(newValues); @@ -373,7 +385,10 @@ const UploadPage = () => { }; const removeToothLogFile = async (file: UploadFile) => { - await removeFileFromStorage(toothLogFileIds.get(file.uid)!); + if (!await removeFileFromStorage(toothLogFileIds.get(file.uid)!)) { + return; + } + toothLogFileIds.delete(file.uid); const newValues = new Map(toothLogFileIds); setToothLogFileIds(newValues); @@ -381,7 +396,10 @@ const UploadPage = () => { }; const removeCustomIniFile = async (file: UploadFile) => { - await removeFileFromStorage(customIniFileId!); + if (!await removeFileFromStorage(customIniFileId!)) { + return; + } + await updateTune(tuneDocumentId!, { customIniFileId: null }); setCustomIniFileId(null); };