diff --git a/.changeset/dry-mice-explode.md b/.changeset/dry-mice-explode.md
new file mode 100644
index 00000000..d758f9dc
--- /dev/null
+++ b/.changeset/dry-mice-explode.md
@@ -0,0 +1,5 @@
+---
+'@reactflow/core': minor
+---
+
+Add autoPan for connecting and node dragging
diff --git a/examples/vite-app/src/examples/Subflow/index.tsx b/examples/vite-app/src/examples/Subflow/index.tsx
index 75bd3629..c3f10b46 100644
--- a/examples/vite-app/src/examples/Subflow/index.tsx
+++ b/examples/vite-app/src/examples/Subflow/index.tsx
@@ -12,6 +12,7 @@ import ReactFlow, {
MiniMap,
Background,
Panel,
+ NodeOrigin,
} from 'reactflow';
import DebugNode from './DebugNode';
diff --git a/examples/vite-app/src/examples/Switch/index.tsx b/examples/vite-app/src/examples/Switch/index.tsx
index eb5d6519..658082ed 100644
--- a/examples/vite-app/src/examples/Switch/index.tsx
+++ b/examples/vite-app/src/examples/Switch/index.tsx
@@ -1,5 +1,5 @@
-import React, { MouseEvent, useCallback } from 'react';
-import ReactFlow, { addEdge, Node, Connection, Edge, useNodesState, useEdgesState } from 'reactflow';
+import { MouseEvent, useCallback } from 'react';
+import ReactFlow, { addEdge, Node, Connection, Edge, useNodesState, useEdgesState, NodeOrigin } from 'reactflow';
const onNodeDragStop = (_: MouseEvent, node: Node) => console.log('drag stop', node);
const onNodeClick = (_: MouseEvent, node: Node) => console.log('click', 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}
>