mirror of
https://github.com/docmost/docmost.git
synced 2025-11-13 08:14:06 +10:00
fix wrong tree sync bug (#514)
This commit is contained in:
@ -191,7 +191,7 @@ export default function SpaceTree({ spaceId, readOnly }: SpaceTreeProps) {
|
|||||||
<div ref={mergedRef} className={classes.treeContainer}>
|
<div ref={mergedRef} className={classes.treeContainer}>
|
||||||
{rootElement.current && (
|
{rootElement.current && (
|
||||||
<Tree
|
<Tree
|
||||||
data={data}
|
data={data.filter((node) => node?.spaceId === spaceId)}
|
||||||
disableDrag={readOnly}
|
disableDrag={readOnly}
|
||||||
disableDrop={readOnly}
|
disableDrop={readOnly}
|
||||||
disableEdit={readOnly}
|
disableEdit={readOnly}
|
||||||
|
|||||||
@ -46,30 +46,34 @@ export const useTreeSocket = () => {
|
|||||||
break;
|
break;
|
||||||
case 'moveTreeNode':
|
case 'moveTreeNode':
|
||||||
// move node
|
// move node
|
||||||
treeApi.move({
|
if (treeApi.find(event.payload.id)) {
|
||||||
id: event.payload.id,
|
treeApi.move({
|
||||||
parentId: event.payload.parentId,
|
id: event.payload.id,
|
||||||
index: event.payload.index
|
parentId: event.payload.parentId,
|
||||||
});
|
index: event.payload.index
|
||||||
|
});
|
||||||
|
|
||||||
// update node position
|
// update node position
|
||||||
treeApi.update({
|
treeApi.update({
|
||||||
id: event.payload.id,
|
id: event.payload.id,
|
||||||
changes: {
|
changes: {
|
||||||
position: event.payload.position,
|
position: event.payload.position,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setTreeData(treeApi.data);
|
setTreeData(treeApi.data);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "deleteTreeNode":
|
case "deleteTreeNode":
|
||||||
treeApi.drop({ id: event.payload.node.id });
|
if (treeApi.find(event.payload.node.id)){
|
||||||
setTreeData(treeApi.data);
|
treeApi.drop({ id: event.payload.node.id });
|
||||||
|
setTreeData(treeApi.data);
|
||||||
|
|
||||||
queryClient.invalidateQueries({
|
queryClient.invalidateQueries({
|
||||||
queryKey: ['pages', event.payload.node.slugId].filter(Boolean),
|
queryKey: ['pages', event.payload.node.slugId].filter(Boolean),
|
||||||
});
|
});
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user