# What changed in @xyflow/react

> 55 changes in @xyflow/react 12 from its official release notes, upgrade guides and advisories: 3 breaking, 7 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/@xyflow/react/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @xyflow/react 12

### Breaking changes

- Pane clicks no longer fire when a connection ends on the pane. (12.11.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.1)
- Using handleId without handleType now produces a type error. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- Child nodes belonging to different parents are prevented from overlapping. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)

### New APIs and options

- Adds automatic panning when a user drags a selection close to the viewport edge. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- Exports the NodeHandle type for use by developers. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- screenToFlowPosition now accepts snapGrid in its options. (12.10.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.2)
- Adds a hook for applying middleware to node-change handling. (12.10.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.0)
- Adds zIndexMode to control how z-index is calculated for nodes and edges. (12.10.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.0)
- Adds the type property to EdgeProps, matching NodeProps behavior. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)
- Adds the EdgeToolbar component for building toolbars associated with edges. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)

### Performance

- MiniMap no longer re-renders on every store update, improving rendering performance. (12.11.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.2)
- Viewport pan and zoom transforms are applied imperatively so the component renders only once. (12.11.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.2)
- XYDrag instances are created only for draggable nodes, reducing unnecessary runtime work. (12.11.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.2)
- Optimizes zooming performance when panOnScroll mode is enabled. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Prevents unnecessary updates when selectNodesOnDrag is false. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Prevents unnecessary re-renders in FlowRenderer, improving rendering efficiency. (12.10.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.0)
- Improves the performance of adding nodes and edges. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)

### Behavior and default changes

- Development now logs when a user hides attribution. (12.11.4) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.4)
- Middle-mouse viewport panning can now start from a selection rectangle. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- Control can activate pane panning during a primary-button drag. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- Touch panning takes precedence over drag selection when selectionOnDrag is combined with mouse-button-specific panOnDrag settings. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- useKeyPress now supports key combinations containing three or more keys. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- Improves the return type so the data type can be narrowed by checking the node type. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Connections now receive the current pointer position. (12.9.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.3)
- The default paneClickDistance value is now 1. (12.9.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.3)
- Selections can now be started above a node. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)

### Tooling

- Adds @types/react as an optional peer dependency to prevent pnpm strict-mode issues. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- Adds @types/react-dom as an optional peer dependency to prevent pnpm strict-mode issues. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)

### Fixes and other changes

- onResizeEnd now always fires after onResizeStart during resizing. (12.12.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.12.0)
- Fixes incorrect values during resize when shouldResize returns false. (12.12.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.12.0)
- Prevents the attribution warning when the pane is not rendered. (12.11.6) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.6)
- All properties in the provider store are reset when the flow unmounts. (12.11.6) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.6)
- MiniMap continues working after ReactFlow is remounted. (12.11.4) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.4)
- MiniMap no longer zooms out to include the origin when every node is hidden. (12.11.4) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.4)
- The Background pattern offset calculation is corrected. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- extent: 'parent' now resolves immediately when the parent has width or initialWidth. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- An error is now invoked when a handle cannot be found. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- Internal setNodes now uses the correct nodeExtent. (12.11.3) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.3)
- The type now preserves its discriminated union, improving type-safe connection state handling. (12.11.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.1)
- Development warnings now use library-specific messages and correct documentation links. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- Prevents node resizing beyond absolute extents. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- Corrects the event type passed to onNodeDrag. (12.11.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.11.0)
- The type field may be omitted; omission is equivalent to type: "default". (12.10.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.2)
- Remounts no longer produce an empty store, improving ReactFlow state availability during remounts. (12.10.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.2)
- Viewport helper functions now receive options correctly when called through useReactFlow. (12.10.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.2)
- Visual node selection is cleared when no nodes remain selected in the flow. (12.10.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.2)
- Keeps isValidConnection up to date during an ongoing connection. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Handles an undefined node in the mini map. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Keeps onConnectEnd up to date during an ongoing connection. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Fixes programmatic selection issues by consolidating drag handler effects. (12.10.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.1)
- Ongoing connections now update when a user moves a node with the keyboard. (12.10.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.10.0)
- The selection box resets when a user selects a node. (12.9.2) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.2)
- onPaneClick events are no longer suppressed when selectionOnDrag=true. (12.9.1) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.1)
- NodeResizer props can change while a resize is in progress. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)
- onMoveEnd is always called when onMoveStart was called. (12.9.0) — [release notes](https://github.com/xyflow/xyflow/releases/tag/%40xyflow/react%4012.9.0)
