From 86f7a9a43d051463ddb87c32d5aea0e69c4422bc Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jan 2023 18:23:20 +0100 Subject: [PATCH] feat(nodes): move canvas when nodes are at the edge of the canvas #2753 --- .../vite-app/src/examples/Switch/index.tsx | 7 +- .../core/src/components/Handle/handler.ts | 14 +- packages/core/src/hooks/useDrag/index.ts | 153 ++++++++++++------ packages/core/src/utils/index.ts | 12 ++ 4 files changed, 118 insertions(+), 68 deletions(-) diff --git a/examples/vite-app/src/examples/Switch/index.tsx b/examples/vite-app/src/examples/Switch/index.tsx index eb5d6519..7fde6bbd 100644 --- a/examples/vite-app/src/examples/Switch/index.tsx +++ b/examples/vite-app/src/examples/Switch/index.tsx @@ -1,4 +1,4 @@ -import React, { MouseEvent, useCallback } from 'react'; +import { MouseEvent, useCallback } from 'react'; import ReactFlow, { addEdge, Node, Connection, Edge, useNodesState, useEdgesState } from 'reactflow'; const onNodeDragStop = (_: MouseEvent, node: Node) => console.log('drag stop', node); @@ -35,7 +35,7 @@ const nodesA: Node[] = [ ]; const edgesA: Edge[] = [ - { id: 'e1-2', source: '1a', target: '2a', ariaLabel: null }, + { id: 'e1-2', source: '1a', target: '2a', ariaLabel: undefined }, { id: 'e1-3', source: '1a', target: '3a' }, ]; @@ -83,6 +83,8 @@ const edgesB: Edge[] = [ { id: 'e4b', source: 'inputb', target: '4b' }, ]; +const onNodeDrag = (_: MouseEvent, node: Node) => console.log('drag', node.position); + const BasicFlow = () => { const [nodes, setNodes, onNodesChange] = useNodesState(nodesA); const [edges, setEdges, onEdgesChange] = useEdgesState(edgesA); @@ -99,6 +101,7 @@ const BasicFlow = () => { onConnect={onConnect} onNodeDragStop={onNodeDragStop} disableKeyboardA11y + onNodeDrag={onNodeDrag} >