Fix ZoomPanWrapper stuck at panning

- Fixed ZoomPanWrapper getting stuck at panning when the cursor leaves the map area while mouse key is pressed
This commit is contained in:
izawartka 2026-08-14 01:24:58 +02:00
parent e9230f5eed
commit ce4c90cbc7

View File

@ -220,9 +220,15 @@ export default function ZoomPanWrapper({children}) {
const onPointerCancel = onPointerUp; const onPointerCancel = onPointerUp;
useEffect(() => { useEffect(() => {
window.addEventListener('pointermove', onPointerMove);
window.addEventListener('pointerup', onPointerUp);
window.addEventListener('pointercancel', onPointerCancel);
window.addEventListener('resize', handleResize); window.addEventListener('resize', handleResize);
handleResize(); // Initial call to set the viewBox handleResize(); // Initial call to set the viewBox
return () => { return () => {
window.removeEventListener('pointermove', onPointerMove);
window.removeEventListener('pointerup', onPointerUp);
window.removeEventListener('pointercancel', onPointerCancel);
window.removeEventListener('resize', handleResize); window.removeEventListener('resize', handleResize);
}; };
}, [handleResize]); }, [handleResize]);
@ -293,9 +299,6 @@ export default function ZoomPanWrapper({children}) {
viewBox={getViewBoxString()} viewBox={getViewBoxString()}
onWheel={onWheel} onWheel={onWheel}
onPointerDown={onPointerDown} onPointerDown={onPointerDown}
onPointerMove={onPointerMove}
onPointerUp={onPointerUp}
onPointerCancel={onPointerCancel}
> >
<g ref={cameraWrapperRef} transform={getCameraTransformString()}> <g ref={cameraWrapperRef} transform={getCameraTransformString()}>
{children} {children}