fix(react/svelte): select nodes on click when nodeDragThreshold > 0

This commit is contained in:
moklick
2023-10-09 15:22:58 +02:00
parent 5313a9bfcc
commit 6f9ebbf609
2 changed files with 6 additions and 5 deletions
@@ -67,8 +67,9 @@ export default (NodeComponent: ComponentType<NodeProps>) => {
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,
@@ -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]);
}