Skip to content

Commit 163b843

Browse files
committed
fix: drag trigger
1 parent 444099a commit 163b843

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/HeTree.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,22 @@ export function useHeTree<T extends Record<string, any>>(
275275
e.preventDefault() // prevent drag
276276
return
277277
}
278+
let trigger: Element
279+
const nodeBox = hp.findParent(e.target as HTMLElement, (el) => {
280+
if (!trigger && el.hasAttribute('draggable')) {
281+
trigger = el
282+
}
283+
return el.hasAttribute('data-node-box')
284+
}, { withSelf: true })
285+
let hasChildTrigger = nodeBox.querySelector(`[draggable]`)
286+
if (hasChildTrigger && trigger! === nodeBox) {
287+
// has child trigger but triggered by node box
288+
e.preventDefault() // prevent drag
289+
return
290+
}
278291
//
279292
e.dataTransfer!.setData("text/plain", "he-tree he-tree-react"); // set data to work in Chrome Android
280293
e.dataTransfer!.dropEffect = 'move'
281-
const nodeBox = hp.findParent(e.target as HTMLElement, (el) => el.hasAttribute('data-node-box'), { withSelf: true })
282294
if (props.customDragImage) {
283295
props.customDragImage(e, stat)
284296
} else {

0 commit comments

Comments
 (0)