refactor(core): pass drag handle to useDrag
This commit is contained in:
@@ -62,6 +62,7 @@ const NodeWrapper = defineComponent({
|
|||||||
el: nodeElement,
|
el: nodeElement,
|
||||||
disabled: () => !props.draggable,
|
disabled: () => !props.draggable,
|
||||||
selectable: () => props.selectable,
|
selectable: () => props.selectable,
|
||||||
|
dragHandle: () => node.value.dragHandle,
|
||||||
onStart(args) {
|
onStart(args) {
|
||||||
emit.dragStart({ ...args, intersections: getIntersectingNodes(node.value) })
|
emit.dragStart({ ...args, intersections: getIntersectingNodes(node.value) })
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ interface UseDragParams {
|
|||||||
disabled?: MaybeComputedRef<boolean>
|
disabled?: MaybeComputedRef<boolean>
|
||||||
selectable?: MaybeComputedRef<boolean>
|
selectable?: MaybeComputedRef<boolean>
|
||||||
id?: string
|
id?: string
|
||||||
|
dragHandle?: MaybeComputedRef<string | undefined>
|
||||||
}
|
}
|
||||||
|
|
||||||
function useDrag(params: UseDragParams) {
|
function useDrag(params: UseDragParams) {
|
||||||
@@ -39,7 +40,7 @@ function useDrag(params: UseDragParams) {
|
|||||||
emits,
|
emits,
|
||||||
} = $(useVueFlow())
|
} = $(useVueFlow())
|
||||||
|
|
||||||
const { onStart, onDrag, onStop, el, disabled, id, selectable } = params
|
const { onStart, onDrag, onStop, el, disabled, id, selectable, dragHandle } = params
|
||||||
|
|
||||||
const dragging = ref(false)
|
const dragging = ref(false)
|
||||||
|
|
||||||
@@ -209,11 +210,13 @@ function useDrag(params: UseDragParams) {
|
|||||||
})
|
})
|
||||||
.filter((event: D3DragEvent<HTMLDivElement, null, SubjectPosition>['sourceEvent']) => {
|
.filter((event: D3DragEvent<HTMLDivElement, null, SubjectPosition>['sourceEvent']) => {
|
||||||
const target = event.target as HTMLDivElement
|
const target = event.target as HTMLDivElement
|
||||||
|
const unrefDragHandle = resolveUnref(dragHandle)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
!event.button &&
|
!event.button &&
|
||||||
(!noDragClassName ||
|
(!noDragClassName ||
|
||||||
(!hasSelector(target, `.${noDragClassName}`, nodeEl) &&
|
(!hasSelector(target, `.${noDragClassName}`, nodeEl) &&
|
||||||
(!node?.dragHandle || hasSelector(target, node.dragHandle, nodeEl))))
|
(!unrefDragHandle || hasSelector(target, unrefDragHandle, nodeEl))))
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user