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

add a side-effect to reset modal states

Yuki Takei 4 лет назад
Родитель
Сommit
bb6a1aca05
1 измененных файлов с 20 добавлено и 1 удалено
  1. 20 1
      packages/app/src/components/PageRenameModal.tsx

+ 20 - 1
packages/app/src/components/PageRenameModal.tsx

@@ -30,7 +30,7 @@ const PageRenameModal = (): JSX.Element => {
   const isOpened = renameModalData?.isOpened ?? false;
   const page = renameModalData?.page;
 
-  const shouldFetch = page != null && !isIPageInfoForEntity(page.meta);
+  const shouldFetch = isOpened && page != null && !isIPageInfoForEntity(page.meta);
   const { data: pageInfo } = useSWRxPageInfo(shouldFetch ? page?.data._id : null);
 
   if (page != null && pageInfo != null) {
@@ -144,6 +144,25 @@ const PageRenameModal = (): JSX.Element => {
     }
   }
 
+  useEffect(() => {
+    if (isOpened) {
+      return;
+    }
+
+    // reset states after the modal closed
+    setTimeout(() => {
+      setPageNameInput('');
+      setErrs(null);
+      setSubordinatedPages([]);
+      setExistingPaths([]);
+      setIsRenameRecursively(true);
+      setIsRenameRedirect(false);
+      setIsRemainMetadata(false);
+      setExpandOtherOptions(false);
+    }, 1000);
+
+  }, [isOpened]);
+
   if (page == null) {
     return <></>;
   }