Просмотр исходного кода

mtuate currentPageId using useEffect

Shun Miyazawa 3 лет назад
Родитель
Сommit
bd89b9c000

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

@@ -215,7 +215,7 @@ const PageEditor = React.memo((): JSX.Element => {
     try {
       const { page } = await saveOrUpdate(
         markdownToSave.current,
-        { pageId: currentPage?._id, path: currentPagePath || currentPathname, revisionId: currentRevisionId },
+        { pageId, path: currentPagePath || currentPathname, revisionId: currentRevisionId },
         options,
       );
 

+ 6 - 1
packages/app/src/pages/[[...path]].page.tsx

@@ -234,13 +234,14 @@ const Page: NextPageWithLayout<Props> = (props: Props) => {
   const pagePath = pageWithMeta?.data.path ?? props.currentPathname;
   const revisionBody = pageWithMeta?.data.revision?.body;
 
-  useCurrentPageId(pageId ?? null);
   usePageIdOnHackmd(pageWithMeta?.data.pageIdOnHackmd);
   useHasDraftOnHackmd(pageWithMeta?.data.hasDraftOnHackmd ?? false);
   useCurrentPathname(props.currentPathname);
 
   useSWRxCurrentPage(pageWithMeta?.data ?? null); // store initial data
 
+  const { mutate: mutateCurrentPageId } = useCurrentPageId();
+
   const { mutate: mutateEditingMarkdown } = useEditingMarkdown();
 
   const { data: grantData } = useSWRxIsGrantNormalized(pageId);
@@ -286,6 +287,10 @@ const Page: NextPageWithLayout<Props> = (props: Props) => {
     mutateRevisionIdHackmdSynced(pageWithMeta?.data.revisionHackmdSynced);
   }, [mutateRemoteRevisionId, mutateRevisionIdHackmdSynced, pageWithMeta?.data.revision?._id, pageWithMeta?.data.revisionHackmdSynced]);
 
+  useEffect(() => {
+    mutateCurrentPageId(pageId ?? null);
+  }, [mutateCurrentPageId, pageId]);
+
   const title = generateCustomTitleForPage(props, pagePath);
 
   return (