Przeglądaj źródła

add mutateIsEnabledUnsavedWarning to hackmd

Yuken Tezuka 3 lat temu
rodzic
commit
11079fe3ca
1 zmienionych plików z 10 dodań i 3 usunięć
  1. 10 3
      packages/app/src/components/PageEditorByHackmd.tsx

+ 10 - 3
packages/app/src/components/PageEditorByHackmd.tsx

@@ -165,7 +165,9 @@ export const PageEditorByHackmd = (): JSX.Element => {
   useEffect(() => {
     // for page translation: https://github.com/weseek/growi/pull/7100
     setIsInitialized(false);
-  }, [pageId]);
+
+    mutateIsEnabledUnsavedWarning(false);
+  }, [mutateIsEnabledUnsavedWarning, pageId]);
 
 
   const isResume = useCallback(() => {
@@ -259,6 +261,8 @@ export const PageEditorByHackmd = (): JSX.Element => {
       updateStateAfterSave?.();
       mutateTagsInfo();
 
+      mutateIsEnabledUnsavedWarning(false);
+
       logger.debug('success to save');
 
       toastSuccess(t('successfully_saved_the_page'));
@@ -267,7 +271,8 @@ export const PageEditorByHackmd = (): JSX.Element => {
       logger.error('failed to save', error);
       toastError(error.message);
     }
-  }, [currentPagePath, currentPathname, pageId, revisionIdHackmdSynced, optionsToSave, saveOrUpdate, mutatePageData, updateStateAfterSave, mutateTagsInfo, t]);
+  }, [currentPagePath, currentPathname, pageId, revisionIdHackmdSynced, optionsToSave,
+      saveOrUpdate, mutatePageData, updateStateAfterSave, mutateTagsInfo, mutateIsEnabledUnsavedWarning, t]);
 
   /**
    * onChange event of HackmdEditor handler
@@ -283,13 +288,15 @@ export const PageEditorByHackmd = (): JSX.Element => {
       return;
     }
 
+    mutateIsEnabledUnsavedWarning(true);
+
     try {
       await apiPost('/hackmd.saveOnHackmd', { pageId });
     }
     catch (err) {
       logger.error(err);
     }
-  }, [pageId, revision?.body, hackmdUri]);
+  }, [hackmdUri, pageId, revision?.body, mutateIsEnabledUnsavedWarning]);
 
   const penpalErrorOccuredHandler = useCallback((error) => {
     toastError(error.message);