diff --git a/src/actions/actionExport.tsx b/src/actions/actionExport.tsx index 1af29885..a3093ec2 100644 --- a/src/actions/actionExport.tsx +++ b/src/actions/actionExport.tsx @@ -8,6 +8,14 @@ import useIsMobile from "../is-mobile"; import { register } from "./register"; import { KEYS } from "../keys"; +const muteFSAbortError = (error?: Error) => { + // if user cancels, ignore the error + if (error?.name === "AbortError") { + return; + } + throw error; +}; + export const actionChangeProjectName = register({ name: "changeProjectName", perform: (_elements, appState, value) => { @@ -65,9 +73,9 @@ export const actionChangeShouldAddWatermark = register({ export const actionSaveScene = register({ name: "saveScene", perform: (elements, appState, value) => { - saveAsJSON(elements, appState, (window as any).handle).catch((error) => - console.error(error), - ); + saveAsJSON(elements, appState, (window as any).handle) + .catch(muteFSAbortError) + .catch((error) => console.error(error)); return { commitToHistory: false }; }, keyTest: (event) => { @@ -88,7 +96,9 @@ export const actionSaveScene = register({ export const actionSaveAsScene = register({ name: "saveAsScene", perform: (elements, appState, value) => { - saveAsJSON(elements, appState, null).catch((error) => console.error(error)); + saveAsJSON(elements, appState, null) + .catch(muteFSAbortError) + .catch((error) => console.error(error)); return { commitToHistory: false }; }, keyTest: (event) => { @@ -135,11 +145,8 @@ export const actionLoadScene = register({ .then(({ elements, appState }) => { updateData({ elements: elements, appState: appState }); }) + .catch(muteFSAbortError) .catch((error) => { - // if user cancels, ignore the error - if (error.name === "AbortError") { - return; - } updateData({ error: error.message }); }); }}