|
|
@@ -6,8 +6,7 @@ import Item from './Item';
|
|
|
import { useSWRxPageAncestorsChildren, useSWRxRootPage } from '../../../stores/page-listing';
|
|
|
import { TargetAndAncestors } from '~/interfaces/page-listing-results';
|
|
|
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
|
|
|
@@ -53,20 +52,10 @@ type ItemsTreeProps = {
|
|
|
targetPath: string
|
|
|
targetPathOrId?: string
|
|
|
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 (
|
|
|
<ul className="grw-pagetree list-group p-3">
|
|
|
<Item
|
|
|
@@ -77,7 +66,6 @@ const renderByInitialNode = (
|
|
|
isEnableActions={isEnableActions}
|
|
|
onClickDeleteByPage={onClickDeleteByPage}
|
|
|
/>
|
|
|
- {DeleteModal}
|
|
|
</ul>
|
|
|
);
|
|
|
};
|
|
|
@@ -87,24 +75,15 @@ const renderByInitialNode = (
|
|
|
* ItemsTree
|
|
|
*/
|
|
|
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: 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) {
|
|
|
// TODO: improve message
|
|
|
@@ -117,7 +96,7 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
*/
|
|
|
if (ancestorsChildrenData != null && rootPageData != null) {
|
|
|
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) {
|
|
|
const initialNode = generateInitialNodeBeforeResponse(targetAndAncestorsData.targetAndAncestors);
|
|
|
- return renderByInitialNode(initialNode, DeleteModal, isEnableActions, targetPathOrId, onClickDeleteByPage);
|
|
|
+ return renderByInitialNode(initialNode, isEnableActions, targetPathOrId, onClickDeleteByPage);
|
|
|
}
|
|
|
|
|
|
return null;
|
|
|
};
|
|
|
|
|
|
-
|
|
|
export default ItemsTree;
|