From 4c62eef7dadf383b8a2bbb68c7fcb0ae5253d720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arno=C5=A1t=20Pleskot?= Date: Fri, 9 Feb 2024 15:47:18 +0100 Subject: [PATCH] fix: add scroll constraints to pinch-to-zoom in safari --- packages/excalidraw/components/App.tsx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index 9288e8627f..27d71d8179 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -4269,16 +4269,19 @@ class App extends React.Component { const initialScale = gesture.initialScale; if (initialScale) { - this.setState((state) => ({ - ...getStateForZoom( - { - viewportX: this.lastViewportPosition.x, - viewportY: this.lastViewportPosition.y, - nextZoom: getNormalizedZoom(initialScale * event.scale), - }, - state, - ), - })); + this.setState((state) => + constrainScrollState({ + ...state, + ...getStateForZoom( + { + viewportX: this.lastViewportPosition.x, + viewportY: this.lastViewportPosition.y, + nextZoom: getNormalizedZoom(initialScale * event.scale), + }, + state, + ), + }), + ); } });