diff --git a/.changeset/empty-paws-cough.md b/.changeset/empty-paws-cough.md new file mode 100644 index 00000000..6642232e --- /dev/null +++ b/.changeset/empty-paws-cough.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Optimize zooming performance when panOnScroll mode is enabled diff --git a/packages/react/src/container/ZoomPane/index.tsx b/packages/react/src/container/ZoomPane/index.tsx index 67babfa2..14d64957 100644 --- a/packages/react/src/container/ZoomPane/index.tsx +++ b/packages/react/src/container/ZoomPane/index.tsx @@ -73,7 +73,8 @@ export function ZoomPane({ maxZoom, translateExtent, viewport: defaultViewport, - onDraggingChange: (paneDragging: boolean) => store.setState({ paneDragging }), + onDraggingChange: (paneDragging) => + store.setState((prevState) => prevState.paneDragging === paneDragging ? prevState : { paneDragging }), onPanZoomStart: (event, vp) => { const { onViewportChangeStart, onMoveStart } = store.getState(); onMoveStart?.(event, vp);