瀏覽代碼

fix: incorrectly erasing on mobile (#4899)

* fix: incorrectly erasing on mobile

* reintroduce fix for erasing on single-point click

* fix snaps
David Luzar 3 年之前
父節點
當前提交
b682d88167
共有 2 個文件被更改,包括 16 次插入2 次删除
  1. 15 1
      src/components/App.tsx
  2. 1 1
      src/tests/__snapshots__/regressionTests.test.tsx.snap

+ 15 - 1
src/components/App.tsx

@@ -2984,7 +2984,21 @@ class App extends React.Component<AppProps, AppState> {
     this.lastPointerUp = event;
     const isTouchScreen = ["pen", "touch"].includes(event.pointerType);
 
-    if (isTouchScreen || isEraserActive(this.state)) {
+    if (isTouchScreen) {
+      const scenePointer = viewportCoordsToSceneCoords(
+        { clientX: event.clientX, clientY: event.clientY },
+        this.state,
+      );
+      const hitElement = this.getElementAtPosition(
+        scenePointer.x,
+        scenePointer.y,
+      );
+      this.hitLinkElement = this.getElementLinkAtPosition(
+        scenePointer,
+        hitElement,
+      );
+    }
+    if (isEraserActive(this.state)) {
       const scenePointer = viewportCoordsToSceneCoords(
         { clientX: event.clientX, clientY: event.clientY },
         this.state,

+ 1 - 1
src/tests/__snapshots__/regressionTests.test.tsx.snap

@@ -16860,7 +16860,7 @@ Object {
 
 exports[`regression tests two-finger scroll works: [end of test] number of elements 1`] = `0`;
 
-exports[`regression tests two-finger scroll works: [end of test] number of renders 1`] = `16`;
+exports[`regression tests two-finger scroll works: [end of test] number of renders 1`] = `12`;
 
 exports[`regression tests undo/redo drawing an element: [end of test] appState 1`] = `
 Object {