From 54a60d6c761e3e0b95240ac9eaf424654181775d Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Fri, 2 Oct 2020 13:44:15 +1000 Subject: [PATCH] Fix map interaction --- src/components/map/MapInteraction.js | 1 + src/helpers/useStageInteraction.js | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/components/map/MapInteraction.js b/src/components/map/MapInteraction.js index 0e39319..5b075ab 100644 --- a/src/components/map/MapInteraction.js +++ b/src/components/map/MapInteraction.js @@ -89,6 +89,7 @@ function MapInteraction({ stageScale, setStageScale, stageTranslateRef, + selectedToolId, preventMapInteraction, { onPinchStart: () => { diff --git a/src/helpers/useStageInteraction.js b/src/helpers/useStageInteraction.js index 395964e..58533eb 100644 --- a/src/helpers/useStageInteraction.js +++ b/src/helpers/useStageInteraction.js @@ -12,6 +12,7 @@ function useStageInteraction( stageScale, onStageScaleChange, stageTranslateRef, + tool = "pan", preventInteraction = false, gesture = {} ) { @@ -89,14 +90,16 @@ function useStageInteraction( const [dx, dy] = delta; const stageTranslate = stageTranslateRef.current; - const newTranslate = { - x: stageTranslate.x + dx / stageScale, - y: stageTranslate.y + dy / stageScale, - }; - layer.x(newTranslate.x); - layer.y(newTranslate.y); - layer.draw(); - stageTranslateRef.current = newTranslate; + if (tool === "pan") { + const newTranslate = { + x: stageTranslate.x + dx / stageScale, + y: stageTranslate.y + dy / stageScale, + }; + layer.x(newTranslate.x); + layer.y(newTranslate.y); + layer.draw(); + stageTranslateRef.current = newTranslate; + } gesture.onDrag && gesture.onDrag(props); }, });