From 6d119eb582a41d8ff517db7927d251023387b430 Mon Sep 17 00:00:00 2001 From: Veniamin Krol <153412+vkrol@users.noreply.github.com> Date: Mon, 26 Jan 2026 10:33:49 +0100 Subject: [PATCH] Optimize zooming when panOnScroll is enabled Do not update the store every time the wheel event is triggered if nothing has changed. --- packages/react/src/container/ZoomPane/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/react/src/container/ZoomPane/index.tsx b/packages/react/src/container/ZoomPane/index.tsx index 67babfa2..bf662e68 100644 --- a/packages/react/src/container/ZoomPane/index.tsx +++ b/packages/react/src/container/ZoomPane/index.tsx @@ -73,7 +73,13 @@ export function ZoomPane({ maxZoom, translateExtent, viewport: defaultViewport, - onDraggingChange: (paneDragging: boolean) => store.setState({ paneDragging }), + onDraggingChange: (paneDragging) => + store.setState((prevState) => { + if (prevState.paneDragging !== paneDragging) { + return { paneDragging }; + } + return prevState; + }), onPanZoomStart: (event, vp) => { const { onViewportChangeStart, onMoveStart } = store.getState(); onMoveStart?.(event, vp);