Yuken Tezuka 3 лет назад
Родитель
Сommit
77a9176197

+ 18 - 18
packages/app/src/client/services/page-operation.ts

@@ -175,27 +175,27 @@ export const useSaveOrUpdate = (): SaveOrUpdateFunction => {
   };
 };
 
-export const useUpdateStateAfterSave = async(pageId: string) => {
+export const useUpdateStateAfterSave = () => {
   const { mutate: mutateCurrentPageId } = useCurrentPageId();
   const { mutate: mutateCurrentPage } = useSWRxCurrentPage();
   const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
 
   // update swr 'currentPageId', 'currentPage', remote states
-
-  await mutateCurrentPageId(pageId);
-  const updatedPage = await mutateCurrentPage();
-
-  if (updatedPage == null) { return }
-
-  const remoterevisionData = {
-    remoteRevisionId: updatedPage.revision._id,
-    remoteRevisionBody: updatedPage.revision.body,
-    remoteRevisionLastUpdateUser: updatedPage.lastUpdateUser,
-    remoteRevisionLastUpdatedAt: updatedPage.updatedAt,
-    revisionIdHackmdSynced: updatedPage.revisionHackmdSynced.toString(),
-    hasDraftOnHackmd: updatedPage.hasDraftOnHackmd,
-  };
-
-  setRemoteLatestPageData(remoterevisionData);
-
+  return async(pageId: string) => {
+    await mutateCurrentPageId(pageId);
+    const updatedPage = await mutateCurrentPage();
+
+    if (updatedPage == null) { return }
+
+    const remoterevisionData = {
+      remoteRevisionId: updatedPage.revision._id,
+      remoteRevisionBody: updatedPage.revision.body,
+      remoteRevisionLastUpdateUser: updatedPage.lastUpdateUser,
+      remoteRevisionLastUpdatedAt: updatedPage.updatedAt,
+      revisionIdHackmdSynced: updatedPage.revisionHackmdSynced.toString(),
+      hasDraftOnHackmd: updatedPage.hasDraftOnHackmd,
+    };
+
+    setRemoteLatestPageData(remoterevisionData);
+  }
 };

+ 3 - 3
packages/app/src/components/PageEditor.tsx

@@ -94,7 +94,7 @@ const PageEditor = React.memo((): JSX.Element => {
   const { mutate: mutateIsEnabledUnsavedWarning } = useIsEnabledUnsavedWarning();
   const saveOrUpdate = useSaveOrUpdate();
 
-  const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
+  const updateStateAfterSave = useUpdateStateAfterSave();
 
   const currentRevisionId = currentPage?.revision?._id;
 
@@ -248,7 +248,7 @@ const PageEditor = React.memo((): JSX.Element => {
       await router.push(`/${page._id}`);
     }
     else {
-      useUpdateStateAfterSave(page._id);
+      updateStateAfterSave(page._id);
     }
     mutateEditorMode(EditorMode.View);
   }, [editorMode, save, isNotFound, mutateEditorMode, router, useUpdateStateAfterSave]);
@@ -260,7 +260,7 @@ const PageEditor = React.memo((): JSX.Element => {
 
     const page = await save();
     if (page != null) {
-      useUpdateStateAfterSave(page._id);
+      updateStateAfterSave(page._id);
       toastSuccess(t('toaster.save_succeeded'));
     }
   }, [editorMode, save, t, useUpdateStateAfterSave]);

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

@@ -88,7 +88,7 @@ export const PageEditorByHackmd = (): JSX.Element => {
   const { data: isHackmdDraftUpdatingInRealtime, mutate: mutateIsHackmdDraftUpdatingInRealtime } = useIsHackmdDraftUpdatingInRealtime();
   const { data: remoteRevisionId, mutate: mutateRemoteRevisionId } = useRemoteRevisionId();
 
-  const { setRemoteLatestPageData } = useSetRemoteLatestPageData();
+  const updateStateAfterSave = useUpdateStateAfterSave();
 
   const hackmdEditorRef = useRef<HackEditorRef>(null);
 
@@ -125,7 +125,7 @@ export const PageEditorByHackmd = (): JSX.Element => {
         await router.push(`/${page._id}`);
       }
       else {
-        useUpdateStateAfterSave(page._id);
+        updateStateAfterSave(page._id);
       }
       setIsInitialized(false);
       mutateEditorMode(EditorMode.View);
@@ -256,7 +256,7 @@ export const PageEditorByHackmd = (): JSX.Element => {
       mutatePageData(res);
 
       // set updated data
-      useUpdateStateAfterSave(res._id);
+      updateStateAfterSave(res._id);
       mutateTagsInfo();
 
       logger.debug('success to save');