From 843217601482a14fa4d9a0f71a816fdaf964be46 Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Thu, 28 May 2020 11:52:18 +1000 Subject: [PATCH] Fix map scroll when modal open --- src/components/map/MapInteraction.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/map/MapInteraction.js b/src/components/map/MapInteraction.js index 2fa5330..f04bc84 100644 --- a/src/components/map/MapInteraction.js +++ b/src/components/map/MapInteraction.js @@ -75,11 +75,15 @@ function MapInteraction({ map, children, controls, selectedToolId }) { const pinchPreviousDistanceRef = useRef(); const pinchPreviousOriginRef = useRef(); - const isDraggingCanvas = useRef(false); + const isInteractingCanvas = useRef(false); const bind = useGesture({ + onWheelStart: ({ event }) => { + isInteractingCanvas.current = + event.target === mapLayerRef.current.getCanvas()._canvas; + }, onWheel: ({ delta }) => { - if (preventMapInteraction) { + if (preventMapInteraction || !isInteractingCanvas.current) { return; } const newScale = Math.min( @@ -122,11 +126,11 @@ function MapInteraction({ map, children, controls, selectedToolId }) { pinchPreviousOriginRef.current = { x: originX, y: originY }; }, onDragStart: ({ event }) => { - isDraggingCanvas.current = + isInteractingCanvas.current = event.target === mapLayerRef.current.getCanvas()._canvas; }, onDrag: ({ delta, xy, first, last, pinching }) => { - if (preventMapInteraction || pinching || !isDraggingCanvas.current) { + if (preventMapInteraction || pinching || !isInteractingCanvas.current) { return; }