diff --git a/packages/react/src/components/Nodes/wrapNode.tsx b/packages/react/src/components/Nodes/wrapNode.tsx index c9c08135..f4e71c8d 100644 --- a/packages/react/src/components/Nodes/wrapNode.tsx +++ b/packages/react/src/components/Nodes/wrapNode.tsx @@ -67,8 +67,9 @@ export default (NodeComponent: ComponentType) => { const onContextMenuHandler = getMouseHandler(id, store.getState, onContextMenu); const onDoubleClickHandler = getMouseHandler(id, store.getState, onDoubleClick); const onSelectNodeHandler = (event: MouseEvent) => { - const { selectNodesOnDrag } = store.getState(); - if (isSelectable && (!selectNodesOnDrag || !isDraggable)) { + const { selectNodesOnDrag, nodeDragThreshold } = store.getState(); + + if (isSelectable && (!selectNodesOnDrag || !isDraggable || nodeDragThreshold > 0)) { // this handler gets called within the drag start event when selectNodesOnDrag=true handleNodeClick({ id, diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index 058da8b2..10906aea 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -9,13 +9,13 @@ type ComponentType } from 'svelte'; import cc from 'classcat'; + import { get, writable } from 'svelte/store'; import { errorMessages, type NodeProps } from '@xyflow/system'; import drag from '$lib/actions/drag'; import { useStore } from '$lib/store'; import DefaultNode from '$lib/components/nodes/DefaultNode.svelte'; import type { NodeWrapperProps } from './types'; - import { writable } from 'svelte/store'; interface $$Props extends NodeWrapperProps {} @@ -42,7 +42,7 @@ export { className as class }; const store = useStore(); - const { nodeTypes, addSelectedNodes } = store; + const { nodeTypes, nodeDragThreshold, addSelectedNodes } = store; let nodeRef: HTMLDivElement; const nodeTypeValid = !!$nodeTypes[type!]; @@ -73,7 +73,7 @@ }); function onSelectNodeHandler(event: MouseEvent | TouchEvent) { - if (selectable && (!selectNodesOnDrag || !draggable)) { + if (selectable && (!selectNodesOnDrag || !draggable || get(nodeDragThreshold) > 0)) { // this handler gets called within the drag start event when selectNodesOnDrag=true addSelectedNodes([id]); }