|
|
@@ -1,4 +1,4 @@
|
|
|
-import React, { FC } from 'react';
|
|
|
+import React, { FC, useState } from 'react';
|
|
|
|
|
|
import { IPageHasId } from '../../../interfaces/page';
|
|
|
import { ItemNode } from './ItemNode';
|
|
|
@@ -37,7 +37,6 @@ const generateInitialNodeAfterResponse = (ancestorsChildren: Record<string, Part
|
|
|
|
|
|
const childPages = ancestorsChildren[path];
|
|
|
currentNode.children = ItemNode.generateNodesFromPages(childPages);
|
|
|
-
|
|
|
const nextNode = currentNode.children.filter((node) => {
|
|
|
return paths.includes(node.page.path as string);
|
|
|
})[0];
|
|
|
@@ -94,6 +93,8 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
const { data: ancestorsChildrenData, error: error1 } = useSWRxPageAncestorsChildren(targetPath);
|
|
|
const { data: rootPageData, error: error2 } = useSWRxRootPage();
|
|
|
|
|
|
+ const [isRenderedCompletely, setRenderedCompletely] = useState(false);
|
|
|
+
|
|
|
const DeleteModal = (
|
|
|
<PageDeleteModal
|
|
|
isOpen={isDeleteModalOpen}
|
|
|
@@ -113,8 +114,9 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
/*
|
|
|
* Render completely
|
|
|
*/
|
|
|
- if (ancestorsChildrenData != null && rootPageData != null) {
|
|
|
+ if (!isRenderedCompletely && ancestorsChildrenData != null && rootPageData != null) {
|
|
|
const initialNode = generateInitialNodeAfterResponse(ancestorsChildrenData.ancestorsChildren, new ItemNode(rootPageData.rootPage));
|
|
|
+ setRenderedCompletely(true); // render once
|
|
|
return renderByInitialNode(initialNode, DeleteModal, isEnableActions, targetId, onClickDeleteByPage);
|
|
|
}
|
|
|
|