mirror of
https://github.com/docmost/docmost.git
synced 2026-05-18 23:44:24 +08:00
fix(tree): update sidebar-pages cache directly instead of refetching on page move (#1870)
This commit is contained in:
@@ -16,6 +16,7 @@ import {
|
||||
useRemovePageMutation,
|
||||
useMovePageMutation,
|
||||
useUpdatePageMutation,
|
||||
updateCacheOnMovePage,
|
||||
} from "@/features/page/queries/page-query.ts";
|
||||
import { generateJitteredKeyBetween } from "fractional-indexing-jittered";
|
||||
import { SpaceTreeNode } from "@/features/page/tree/types.ts";
|
||||
@@ -175,9 +176,25 @@ export function useTreeMutation<T>(spaceId: string) {
|
||||
parentPageId: args.parentId,
|
||||
};
|
||||
|
||||
const draggedNode = args.dragNodes[0];
|
||||
const nodeData = draggedNode.data as SpaceTreeNode;
|
||||
const oldParentId = nodeData.parentPageId ?? null;
|
||||
const pageData = {
|
||||
id: nodeData.id,
|
||||
slugId: nodeData.slugId,
|
||||
title: nodeData.name,
|
||||
icon: nodeData.icon,
|
||||
position: newPosition,
|
||||
spaceId: nodeData.spaceId,
|
||||
parentPageId: args.parentId,
|
||||
hasChildren: nodeData.hasChildren,
|
||||
};
|
||||
|
||||
try {
|
||||
await movePageMutation.mutateAsync(payload);
|
||||
|
||||
updateCacheOnMovePage(spaceId, draggedNodeId, oldParentId, args.parentId, pageData);
|
||||
|
||||
setTimeout(() => {
|
||||
emit({
|
||||
operation: "moveTreeNode",
|
||||
@@ -185,8 +202,10 @@ export function useTreeMutation<T>(spaceId: string) {
|
||||
payload: {
|
||||
id: draggedNodeId,
|
||||
parentId: args.parentId,
|
||||
oldParentId,
|
||||
index: args.index,
|
||||
position: newPosition,
|
||||
pageData,
|
||||
},
|
||||
});
|
||||
}, 50);
|
||||
|
||||
Reference in New Issue
Block a user