From bc7da487e84fea97c82754bc22de94968b0a4990 Mon Sep 17 00:00:00 2001 From: huchenlei Date: Sat, 31 Aug 2024 20:40:14 -0400 Subject: [PATCH] Add drop handler --- src/components/common/TreeExplorerTreeNode.vue | 1 + src/types/treeExplorerTypes.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/components/common/TreeExplorerTreeNode.vue b/src/components/common/TreeExplorerTreeNode.vue index 6909b23ad..aad98f509 100644 --- a/src/components/common/TreeExplorerTreeNode.vue +++ b/src/components/common/TreeExplorerTreeNode.vue @@ -84,6 +84,7 @@ onMounted(() => { onDrop: (event) => { const dndData = event.source.data as TreeExplorerDragAndDropData if (dndData.type === 'tree-explorer-node') { + props.node.handleDrop?.(props.node, dndData) canDrop.value = false emit('itemDropped', props.node, dndData.data) } diff --git a/src/types/treeExplorerTypes.ts b/src/types/treeExplorerTypes.ts index 54d404fc8..c0ad20c0e 100644 --- a/src/types/treeExplorerTypes.ts +++ b/src/types/treeExplorerTypes.ts @@ -19,6 +19,11 @@ export interface TreeExplorerNode { draggable?: boolean // Whether the node is droppable droppable?: boolean + // Function to handle dropping a node + handleDrop?: ( + node: TreeExplorerNode, + data: TreeExplorerDragAndDropData + ) => void } export interface RenderedTreeExplorerNode extends TreeExplorerNode {