|
|
@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
import { IPageHasId } from '../../../interfaces/page';
|
|
|
import { ItemNode } from './ItemNode';
|
|
|
import Item from './Item';
|
|
|
-import { useSWRxPageAncestorsChildren, useSWRxRootPage } from '~/stores/page-listing';
|
|
|
+import { usePageTreeTermManager, useSWRxPageAncestorsChildren, useSWRxRootPage } from '~/stores/page-listing';
|
|
|
import { TargetAndAncestors } from '~/interfaces/page-listing-results';
|
|
|
import { OnDeletedFunction } from '~/interfaces/ui';
|
|
|
import { toastError, toastSuccess } from '~/client/util/apiNotification';
|
|
|
@@ -14,6 +14,8 @@ import {
|
|
|
import { smoothScrollIntoView } from '~/client/util/smooth-scroll';
|
|
|
|
|
|
import { useIsEnabledAttachTitleHeader } from '~/stores/context';
|
|
|
+import { useFullTextSearchTermManager } from '~/stores/search';
|
|
|
+import { useDescendantsPageListForCurrentPathTermManager } from '~/stores/page';
|
|
|
|
|
|
/*
|
|
|
* Utility to generate initial node
|
|
|
@@ -68,7 +70,7 @@ const renderByInitialNode = (
|
|
|
isEnabledAttachTitleHeader?: boolean,
|
|
|
onClickDuplicateMenuItem?: (pageId: string, path: string) => void,
|
|
|
onClickRenameMenuItem?: (pageId: string, revisionId: string, path: string) => void,
|
|
|
- onClickDeleteMenuItem?: (pageToDelete: IPageForPageDeleteModal, onItemDeleted: VoidFunction) => void,
|
|
|
+ onClickDeleteMenuItem?: (pageToDelete: IPageForPageDeleteModal) => void,
|
|
|
): JSX.Element => {
|
|
|
|
|
|
return (
|
|
|
@@ -106,6 +108,11 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
const { open: openRenameModal } = usePageRenameModal();
|
|
|
const { open: openDeleteModal } = usePageDeleteModal();
|
|
|
|
|
|
+ // for mutation
|
|
|
+ const { advance: advancePt } = usePageTreeTermManager();
|
|
|
+ const { advance: advanceFts } = useFullTextSearchTermManager();
|
|
|
+ const { advance: advanceDpl } = useDescendantsPageListForCurrentPathTermManager();
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
const startFrom = document.getElementById('grw-sidebar-contents-scroll-target');
|
|
|
const targetElem = document.getElementsByClassName('grw-pagetree-is-target');
|
|
|
@@ -123,14 +130,12 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
openRenameModal(pageId, revisionId, path);
|
|
|
};
|
|
|
|
|
|
- const onClickDeleteMenuItem = (pageToDelete: IPageForPageDeleteModal, onItemDeleted: VoidFunction) => {
|
|
|
+ const onClickDeleteMenuItem = (pageToDelete: IPageForPageDeleteModal) => {
|
|
|
const onDeletedHandler: OnDeletedFunction = (pathOrPathsToDelete, isRecursively, isCompletely) => {
|
|
|
if (typeof pathOrPathsToDelete !== 'string') {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- onItemDeleted();
|
|
|
-
|
|
|
const path = pathOrPathsToDelete;
|
|
|
|
|
|
if (isCompletely) {
|
|
|
@@ -139,6 +144,12 @@ const ItemsTree: FC<ItemsTreeProps> = (props: ItemsTreeProps) => {
|
|
|
else {
|
|
|
toastSuccess(t('deleted_pages', { path }));
|
|
|
}
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ advancePt();
|
|
|
+ advanceFts();
|
|
|
+ advanceDpl();
|
|
|
+ }, 800);
|
|
|
};
|
|
|
|
|
|
openDeleteModal([pageToDelete], { onDeleted: onDeletedHandler });
|