Explorar el Código

WIP: retrieve page info in PageDeleteModal

Yuki Takei hace 4 años
padre
commit
88041544e3
Se han modificado 1 ficheros con 20 adiciones y 10 borrados
  1. 20 10
      packages/app/src/components/PageDeleteModal.tsx

+ 20 - 10
packages/app/src/components/PageDeleteModal.tsx

@@ -8,10 +8,13 @@ import { apiPost } from '~/client/util/apiv1-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { usePageDeleteModal } from '~/stores/modal';
 
-import { IDeleteSinglePageApiv1Result, IDeleteManyPageApiv3Result } from '~/interfaces/page';
+import {
+  IDeleteSinglePageApiv1Result, IDeleteManyPageApiv3Result, isIPageInfoForOperation, IPageWithAnyMeta,
+} from '~/interfaces/page';
 
 import ApiErrorMessageList from './PageManagement/ApiErrorMessageList';
 import { isTrashPage } from '^/../core/src/utils/page-path-utils';
+import { useSWRxPageInfoForList } from '~/stores/page';
 
 
 const deleteIconAndKey = {
@@ -34,16 +37,23 @@ const PageDeleteModal: FC = () => {
 
   const isOpened = deleteModalData?.isOpened ?? false;
 
+  // const notOperatablePages: IPageWithAnyMeta[] = (deleteModalData?.pages ?? [])
+  //   .filter(p => !isIPageInfoForOperation(p.pageMeta));
+  // const notOperatablePageIds = notOperatablePages.map(p => p.pageData._id);
+
+  // const { injectTo } = useSWRxPageInfoForList(notOperatablePageIds);
+  // const injectedPages = injectTo(deleteModalData?.pages);
+
   const isAbleToDeleteCompletely = useMemo(() => {
-    if (deleteModalData != null && deleteModalData.pages != null && deleteModalData.pages.length > 0) {
-      return deleteModalData.pages.every(page => page.isAbleToDeleteCompletely);
-    }
+    // if (deleteModalData != null && deleteModalData.pages != null && deleteModalData.pages.length > 0) {
+    //   return deleteModalData.pages.every(page => page.pageMeta?.isAbleToDeleteCompletely);
+    // }
     return true;
   }, [deleteModalData]);
 
   const forceDeleteCompletelyMode = useMemo(() => {
     if (deleteModalData != null && deleteModalData.pages != null && deleteModalData.pages.length > 0) {
-      return deleteModalData.pages.every(page => isTrashPage(page.pageData.path));
+      return deleteModalData.pages.every(page => isTrashPage(page.pageData?.path ?? ''));
     }
     return false;
   }, [deleteModalData]);
@@ -80,7 +90,7 @@ const PageDeleteModal: FC = () => {
         const isCompletely = isDeleteCompletely === true ? true : undefined;
 
         const pageIdToRevisionIdMap = {};
-        deleteModalData.pages.forEach((p) => { pageIdToRevisionIdMap[p.pageId] = p.revisionId });
+        deleteModalData.pages.forEach((p) => { pageIdToRevisionIdMap[p.pageData._id] = p.pageData.revision });
 
         const { data } = await apiv3Post<IDeleteManyPageApiv3Result>('/pages/delete', {
           pageIdToRevisionIdMap,
@@ -105,11 +115,11 @@ const PageDeleteModal: FC = () => {
         const recursively = isDeleteRecursively === true ? true : undefined;
         const completely = forceDeleteCompletelyMode || isDeleteCompletely ? true : undefined;
 
-        const page = deleteModalData.pages[0];
+        const page = deleteModalData.pages[0].pageData;
 
         const { path, isRecursively, isCompletely } = await apiPost('/pages.remove', {
-          page_id: page.pageId,
-          revision_id: page.revisionId,
+          page_id: page._id,
+          revision_id: page.revision,
           recursively,
           completely,
         }) as IDeleteSinglePageApiv1Result;
@@ -177,7 +187,7 @@ const PageDeleteModal: FC = () => {
 
   const renderPagePathsToDelete = () => {
     if (deleteModalData != null && deleteModalData.pages != null) {
-      return deleteModalData.pages.map(page => <div key={page.pageId}><code>{ page.path }</code></div>);
+      return deleteModalData.pages.map(page => <div key={page.pageData._id}><code>{ page.pageData.path }</code></div>);
     }
     return <></>;
   };