فهرست منبع

refactoring PageDeleteModal

kaori 4 سال پیش
والد
کامیت
1f83f0e558
2فایلهای تغییر یافته به همراه15 افزوده شده و 30 حذف شده
  1. 14 14
      packages/app/src/components/PageDeleteModal.tsx
  2. 1 16
      packages/app/src/stores/ui.tsx

+ 14 - 14
packages/app/src/components/PageDeleteModal.tsx

@@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next';
 
 
 import { apiPost } from '~/client/util/apiv1-client';
 import { apiPost } from '~/client/util/apiv1-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
-import { usePageDeleteModal, usePageDeleteModalOpened } from '~/stores/ui';
+import { usePageDeleteModal } from '~/stores/ui';
 
 
 import { IDeleteSinglePageApiv1Result, IDeleteManyPageApiv3Result } from '~/interfaces/page';
 import { IDeleteSinglePageApiv1Result, IDeleteManyPageApiv3Result } from '~/interfaces/page';
 
 
@@ -38,10 +38,10 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
     isDeleteCompletelyModal, isAbleToDeleteCompletely,
     isDeleteCompletelyModal, isAbleToDeleteCompletely,
   } = props;
   } = props;
 
 
-  const { data: deleteModalStatus, close: closeDeleteModal } = usePageDeleteModal();
-  const { data: pageDeleteModalOpened } = usePageDeleteModalOpened();
+  const { data: deleteModalData, close: closeDeleteModal } = usePageDeleteModal();
 
 
-  const isOpened = pageDeleteModalOpened?.isOpend != null ? pageDeleteModalOpened.isOpend : false;
+  const isOpened = deleteModalData?.isOpened != null ? deleteModalData.isOpened : false;
+  const onDeleted = deleteModalData?.onDeleted != null ? deleteModalData.onDeleted : null;
 
 
   const [isDeleteRecursively, setIsDeleteRecursively] = useState(true);
   const [isDeleteRecursively, setIsDeleteRecursively] = useState(true);
   const [isDeleteCompletely, setIsDeleteCompletely] = useState(isDeleteCompletelyModal && isAbleToDeleteCompletely);
   const [isDeleteCompletely, setIsDeleteCompletely] = useState(isDeleteCompletelyModal && isAbleToDeleteCompletely);
@@ -62,20 +62,20 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
   }
   }
 
 
   async function deletePage() {
   async function deletePage() {
-    if (deleteModalStatus == null || deleteModalStatus.pages == null) {
+    if (deleteModalData == null || deleteModalData.pages == null) {
       return;
       return;
     }
     }
 
 
     /*
     /*
      * When multiple pages
      * When multiple pages
      */
      */
-    if (deleteModalStatus.pages.length > 1) {
+    if (deleteModalData.pages.length > 1) {
       try {
       try {
         const isRecursively = isDeleteRecursively === true ? true : undefined;
         const isRecursively = isDeleteRecursively === true ? true : undefined;
         const isCompletely = isDeleteCompletely === true ? true : undefined;
         const isCompletely = isDeleteCompletely === true ? true : undefined;
 
 
         const pageIdToRevisionIdMap = {};
         const pageIdToRevisionIdMap = {};
-        deleteModalStatus.pages.forEach((p) => { pageIdToRevisionIdMap[p.pageId] = p.revisionId });
+        deleteModalData.pages.forEach((p) => { pageIdToRevisionIdMap[p.pageId] = p.revisionId });
 
 
         const { data } = await apiv3Post<IDeleteManyPageApiv3Result>('/pages/delete', {
         const { data } = await apiv3Post<IDeleteManyPageApiv3Result>('/pages/delete', {
           pageIdToRevisionIdMap,
           pageIdToRevisionIdMap,
@@ -83,8 +83,8 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
           isCompletely,
           isCompletely,
         });
         });
 
 
-        if (pageDeleteModalOpened != null && pageDeleteModalOpened.onDeleted != null) {
-          pageDeleteModalOpened.onDeleted(data.paths, data.isRecursively, data.isCompletely);
+        if (onDeleted != null) {
+          onDeleted(data.paths, data.isRecursively, data.isCompletely);
         }
         }
       }
       }
       catch (err) {
       catch (err) {
@@ -99,7 +99,7 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
         const recursively = isDeleteRecursively === true ? true : undefined;
         const recursively = isDeleteRecursively === true ? true : undefined;
         const completely = isDeleteCompletely === true ? true : undefined;
         const completely = isDeleteCompletely === true ? true : undefined;
 
 
-        const page = deleteModalStatus.pages[0];
+        const page = deleteModalData.pages[0];
 
 
         const { path, isRecursively, isCompletely } = await apiPost('/pages.remove', {
         const { path, isRecursively, isCompletely } = await apiPost('/pages.remove', {
           page_id: page.pageId,
           page_id: page.pageId,
@@ -108,8 +108,8 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
           completely,
           completely,
         }) as IDeleteSinglePageApiv1Result;
         }) as IDeleteSinglePageApiv1Result;
 
 
-        if (pageDeleteModalOpened != null && pageDeleteModalOpened.onDeleted != null) {
-          pageDeleteModalOpened.onDeleted(path, isRecursively, isCompletely);
+        if (onDeleted != null) {
+          onDeleted(path, isRecursively, isCompletely);
         }
         }
       }
       }
       catch (err) {
       catch (err) {
@@ -177,8 +177,8 @@ const PageDeleteModal: FC<Props> = (props: Props) => {
   }
   }
 
 
   const renderPagePathsToDelete = () => {
   const renderPagePathsToDelete = () => {
-    if (deleteModalStatus != null && deleteModalStatus.pages != null) {
-      return deleteModalStatus.pages.map(page => <div key={page.pageId}><code>{ page.path }</code></div>);
+    if (deleteModalData != null && deleteModalData.pages != null) {
+      return deleteModalData.pages.map(page => <div key={page.pageId}><code>{ page.path }</code></div>);
     }
     }
     return <></>;
     return <></>;
   };
   };

+ 1 - 16
packages/app/src/stores/ui.tsx

@@ -294,18 +294,13 @@ type DeleteModalStatus = {
   onDeleted?: OnDeletedFunction,
   onDeleted?: OnDeletedFunction,
 }
 }
 
 
-type DeleteModalOpened = {
-  isOpend: boolean,
-  onDeleted?: OnDeletedFunction,
-}
-
 type DeleteModalStatusUtils = {
 type DeleteModalStatusUtils = {
   open(pages?: IPageForPageDeleteModal[], onDeleted?: OnDeletedFunction): Promise<DeleteModalStatus | undefined>,
   open(pages?: IPageForPageDeleteModal[], onDeleted?: OnDeletedFunction): Promise<DeleteModalStatus | undefined>,
   close(): Promise<DeleteModalStatus | undefined>,
   close(): Promise<DeleteModalStatus | undefined>,
 }
 }
 
 
 export const usePageDeleteModal = (status?: DeleteModalStatus): SWRResponse<DeleteModalStatus, Error> & DeleteModalStatusUtils => {
 export const usePageDeleteModal = (status?: DeleteModalStatus): SWRResponse<DeleteModalStatus, Error> & DeleteModalStatusUtils => {
-  const initialData: DeleteModalStatus = { isOpened: false };
+  const initialData: DeleteModalStatus = { isOpened: false, pages: [], onDeleted: () => {} };
   const swrResponse = useStaticSWR<DeleteModalStatus, Error>('deleteModalStatus', status, { fallbackData: initialData });
   const swrResponse = useStaticSWR<DeleteModalStatus, Error>('deleteModalStatus', status, { fallbackData: initialData });
 
 
   return {
   return {
@@ -315,16 +310,6 @@ export const usePageDeleteModal = (status?: DeleteModalStatus): SWRResponse<Dele
   };
   };
 };
 };
 
 
-export const usePageDeleteModalOpened = (): SWRResponse<(DeleteModalOpened | null), Error> => {
-  const { data } = usePageDeleteModal();
-  return useSWRImmutable(
-    data != null ? ['isDeleteModalOpened', data] : null,
-    () => {
-      return data != null ? { isOpend: data.isOpened, onDeleted: data?.onDeleted } : null;
-    },
-  );
-};
-
 /*
 /*
 * PageDuplicateModal
 * PageDuplicateModal
 */
 */