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

refactor pagePathRenameHandler to accept onRenameSkipped

WNomunomu 1 год назад
Родитель
Сommit
ff73b14c87

+ 4 - 3
apps/app/src/components/PageEditor/page-path-rename-utils.ts

@@ -8,7 +8,8 @@ import { toastSuccess, toastError } from '~/client/util/toastr';
 import { useSWRMUTxCurrentPage } from '~/stores/page';
 import { mutatePageTree, mutatePageList } from '~/stores/page-listing';
 
-type PagePathRenameHandler = (newPagePath: string, onRenameFinish?: () => void, onRenameFailure?: () => void) => Promise<void>
+
+type PagePathRenameHandler = (newPagePath: string, onRenameFinish?: () => void, onRenameFailure?: () => void, onRenamedSkipped?: () => void) => Promise<void>
 
 export const usePagePathRenameHandler = (
     currentPage?: IPagePopulatedToShowRevision | null,
@@ -17,7 +18,7 @@ export const usePagePathRenameHandler = (
   const { trigger: mutateCurrentPage } = useSWRMUTxCurrentPage();
   const { t } = useTranslation();
 
-  const pagePathRenameHandler = useCallback(async(newPagePath, onRenameFinish, onRenameFailure) => {
+  const pagePathRenameHandler = useCallback(async(newPagePath, onRenameFinish, onRenameFailure, onRenameSkipped) => {
 
     if (currentPage == null) {
       return;
@@ -33,7 +34,7 @@ export const usePagePathRenameHandler = (
     };
 
     if (newPagePath === currentPage.path || newPagePath === '') {
-      onRenameFinish?.();
+      onRenameSkipped?.();
       return;
     }
 

+ 5 - 0
apps/app/src/components/PageHeader/PagePathHeader.tsx

@@ -72,6 +72,11 @@ export const PagePathHeader = memo((props: Props): JSX.Element => {
       },
       () => {
         setRenameInputShown(true);
+      },
+      () => {
+        setRenameInputShown(false);
+        setValidationResult(undefined);
+        onRenameTerminated?.();
       });
   }, [dPagePath.latter, pagePathRenameHandler, onRenameTerminated]);
 

+ 6 - 1
apps/app/src/components/PageHeader/PageTitleHeader.tsx

@@ -71,11 +71,16 @@ export const PageTitleHeader = (props: Props): JSX.Element => {
         setRenameInputShown(false);
         setValidationResult(undefined);
         onMoveTerminated?.();
+        mutateUntitledPage(false);
       },
       () => {
         setRenameInputShown(true);
+      },
+      () => {
+        setRenameInputShown(false);
+        setValidationResult(undefined);
+        onMoveTerminated?.();
       });
-    mutateUntitledPage(false);
   }, [editedPagePath, mutateUntitledPage, onMoveTerminated, pagePathRenameHandler]);
 
   const cancel = useCallback(() => {