Shun Miyazawa 4 jaren geleden
bovenliggende
commit
ce0734c529

+ 2 - 22
packages/app/src/components/Sidebar/PageTree.tsx

@@ -1,4 +1,4 @@
-import React, { FC, memo, useState } from 'react';
+import React, { FC, memo } from 'react';
 import { useTranslation } from 'react-i18next';
 import { useTranslation } from 'react-i18next';
 
 
 import { useSWRxV5MigrationStatus } from '~/stores/page-listing';
 import { useSWRxV5MigrationStatus } from '~/stores/page-listing';
@@ -10,7 +10,6 @@ import ItemsTree from './PageTree/ItemsTree';
 import PrivateLegacyPages from './PageTree/PrivateLegacyPages';
 import PrivateLegacyPages from './PageTree/PrivateLegacyPages';
 import { IPageForPageDeleteModal } from '~/stores/ui';
 import { IPageForPageDeleteModal } from '~/stores/ui';
 
 
-
 const PageTree: FC = memo(() => {
 const PageTree: FC = memo(() => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
@@ -20,13 +19,8 @@ const PageTree: FC = memo(() => {
   const { data: revisionId } = useRevisionId();
   const { data: revisionId } = useRevisionId();
   const { data: targetAndAncestorsData } = useTargetAndAncestors();
   const { data: targetAndAncestorsData } = useTargetAndAncestors();
   const { data: notFoundTargetPathOrIdData } = useNotFoundTargetPathOrId();
   const { data: notFoundTargetPathOrIdData } = useNotFoundTargetPathOrId();
-
   const { data: migrationStatus } = useSWRxV5MigrationStatus();
   const { data: migrationStatus } = useSWRxV5MigrationStatus();
 
 
-  // for delete modal
-  const [isDeleteModalOpen, setDeleteModalOpen] = useState(false);
-  const [pagesToDelete, setPagesToDelete] = useState<IPageForPageDeleteModal[]>([]);
-
   const targetPathOrId = targetId || notFoundTargetPathOrIdData?.notFoundTargetPathOrId;
   const targetPathOrId = targetId || notFoundTargetPathOrIdData?.notFoundTargetPathOrId;
 
 
   if (migrationStatus == null) {
   if (migrationStatus == null) {
@@ -57,6 +51,7 @@ const PageTree: FC = memo(() => {
       </>
       </>
     );
     );
   }
   }
+
   /*
   /*
    * dependencies
    * dependencies
    */
    */
@@ -64,15 +59,6 @@ const PageTree: FC = memo(() => {
     return null;
     return null;
   }
   }
 
 
-  const onClickDeleteByPage = (page: IPageForPageDeleteModal) => {
-    setDeleteModalOpen(true);
-    setPagesToDelete([page]);
-  };
-
-  const onCloseDelete = () => {
-    setDeleteModalOpen(false);
-  };
-
   const path = currentPath || '/';
   const path = currentPath || '/';
 
 
   const pageId = targetId != null ? targetId : '';
   const pageId = targetId != null ? targetId : '';
@@ -95,13 +81,7 @@ const PageTree: FC = memo(() => {
           targetPath={path}
           targetPath={path}
           targetPathOrId={targetPathOrId}
           targetPathOrId={targetPathOrId}
           targetAndAncestorsData={targetAndAncestorsData}
           targetAndAncestorsData={targetAndAncestorsData}
-          isDeleteModalOpen={isDeleteModalOpen}
           pageToDelete={pageToDelete}
           pageToDelete={pageToDelete}
-          pagesToDelete={pagesToDelete}
-          isAbleToDeleteCompletely={false} // TODO: pass isAbleToDeleteCompletely
-          isDeleteCompletelyModal={false} // TODO: pass isDeleteCompletelyModal
-          onCloseDelete={onCloseDelete}
-          onClickDeleteByPage={onClickDeleteByPage}
         />
         />
       </div>
       </div>
 
 

+ 10 - 32
packages/app/src/components/Sidebar/PageTree/ItemsTree.tsx

@@ -6,8 +6,7 @@ import Item from './Item';
 import { useSWRxPageAncestorsChildren, useSWRxRootPage } from '../../../stores/page-listing';
 import { useSWRxPageAncestorsChildren, useSWRxRootPage } from '../../../stores/page-listing';
 import { TargetAndAncestors } from '~/interfaces/page-listing-results';
 import { TargetAndAncestors } from '~/interfaces/page-listing-results';
 import { toastError } from '~/client/util/apiNotification';
 import { toastError } from '~/client/util/apiNotification';
-import PageDeleteModal from '~/components/PageDeleteModal';
-import { IPageForPageDeleteModal } from '~/stores/ui';
+import { IPageForPageDeleteModal, usePageDeleteModalStatus } from '~/stores/ui';
 
 
 /*
 /*
  * Utility to generate initial node
  * Utility to generate initial node
@@ -53,20 +52,10 @@ type ItemsTreeProps = {
   targetPath: string
   targetPath: string
   targetPathOrId?: string
   targetPathOrId?: string
   targetAndAncestorsData?: TargetAndAncestors
   targetAndAncestorsData?: TargetAndAncestors
-
-  // for deleteModal
-  isDeleteModalOpen: boolean
-  pagesToDelete: IPageForPageDeleteModal[]
-  isAbleToDeleteCompletely: boolean
-  isDeleteCompletelyModal: boolean
-  onCloseDelete(): void
-  onClickDeleteByPage(page: IPageForPageDeleteModal): void
+  pageToDelete: IPageForPageDeleteModal
 }
 }
 
 
-const renderByInitialNode = (
-    // eslint-disable-next-line max-len
-    initialNode: ItemNode, DeleteModal: JSX.Element, isEnableActions: boolean, targetPathOrId?: string, onClickDeleteByPage?: (page: IPageForPageDeleteModal) => void,
-): JSX.Element => {
+const renderByInitialNode = (initialNode: ItemNode, isEnableActions: boolean, targetPathOrId?: string, onClickDeleteByPage?: () => void): JSX.Element => {
   return (
   return (
     <ul className="grw-pagetree list-group p-3">
     <ul className="grw-pagetree list-group p-3">
       <Item
       <Item
@@ -77,7 +66,6 @@ const renderByInitialNode = (
         isEnableActions={isEnableActions}
         isEnableActions={isEnableActions}
         onClickDeleteByPage={onClickDeleteByPage}
         onClickDeleteByPage={onClickDeleteByPage}
       />
       />
-      {DeleteModal}
     </ul>
     </ul>
   );
   );
 };
 };
@@ -87,24 +75,15 @@ const renderByInitialNode = (
  * ItemsTree
  * ItemsTree
  */
  */
 const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
 const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
-  const {
-    targetPath, targetPathOrId, targetAndAncestorsData, isDeleteModalOpen, pagesToDelete, isAbleToDeleteCompletely, isDeleteCompletelyModal, onCloseDelete,
-    onClickDeleteByPage, isEnableActions,
-  } = props;
+  const { targetPath, targetPathOrId, targetAndAncestorsData, pageToDelete, isEnableActions } = props;
 
 
   const { data: ancestorsChildrenData, error: error1 } = useSWRxPageAncestorsChildren(targetPath);
   const { data: ancestorsChildrenData, error: error1 } = useSWRxPageAncestorsChildren(targetPath);
   const { data: rootPageData, error: error2 } = useSWRxRootPage();
   const { data: rootPageData, error: error2 } = useSWRxRootPage();
+  const { open: openDeleteModal } = usePageDeleteModalStatus();
 
 
-  // TODO: show PageDeleteModal with usePageDeleteModalStatus by 87568
-  const DeleteModal = (
-    <PageDeleteModal
-      isOpen={isDeleteModalOpen}
-      // pages={pagesToDelete}
-      isAbleToDeleteCompletely={isAbleToDeleteCompletely}
-      isDeleteCompletelyModal={isDeleteCompletelyModal}
-      onClose={onCloseDelete}
-    />
-  );
+  const onClickDeleteByPage = () => {
+    openDeleteModal([pageToDelete]);
+  };
 
 
   if (error1 != null || error2 != null) {
   if (error1 != null || error2 != null) {
     // TODO: improve message
     // TODO: improve message
@@ -117,7 +96,7 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
    */
    */
   if (ancestorsChildrenData != null && rootPageData != null) {
   if (ancestorsChildrenData != null && rootPageData != null) {
     const initialNode = generateInitialNodeAfterResponse(ancestorsChildrenData.ancestorsChildren, new ItemNode(rootPageData.rootPage));
     const initialNode = generateInitialNodeAfterResponse(ancestorsChildrenData.ancestorsChildren, new ItemNode(rootPageData.rootPage));
-    return renderByInitialNode(initialNode, DeleteModal, isEnableActions, targetPathOrId, onClickDeleteByPage);
+    return renderByInitialNode(initialNode, isEnableActions, targetPathOrId, onClickDeleteByPage);
   }
   }
 
 
   /*
   /*
@@ -125,11 +104,10 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
    */
    */
   if (targetAndAncestorsData != null) {
   if (targetAndAncestorsData != null) {
     const initialNode = generateInitialNodeBeforeResponse(targetAndAncestorsData.targetAndAncestors);
     const initialNode = generateInitialNodeBeforeResponse(targetAndAncestorsData.targetAndAncestors);
-    return renderByInitialNode(initialNode, DeleteModal, isEnableActions, targetPathOrId, onClickDeleteByPage);
+    return renderByInitialNode(initialNode, isEnableActions, targetPathOrId, onClickDeleteByPage);
   }
   }
 
 
   return null;
   return null;
 };
 };
 
 
-
 export default ItemsTree;
 export default ItemsTree;