Explorar o código

fix: remove click listener for opening popup (#4700)

* fix: remove click listener for oening popup

* fix
Aakansha Doshi %!s(int64=3) %!d(string=hai) anos
pai
achega
00e30ca0e4
Modificáronse 2 ficheiros con 8 adicións e 9 borrados
  1. 8 8
      src/components/App.tsx
  2. 0 1
      src/element/Hyperlink.tsx

+ 8 - 8
src/components/App.tsx

@@ -1520,6 +1520,14 @@ class App extends React.Component<AppProps, AppState> {
 
   removePointer = (event: React.PointerEvent<HTMLElement> | PointerEvent) => {
     this.lastPointerUp = event;
+
+    if (
+      this.hitLinkElement &&
+      !this.state.selectedElementIds[this.hitLinkElement.id]
+    ) {
+      this.redirectToLink();
+    }
+
     // remove touch handler for context menu on touch devices
     if (event.pointerType === "touch" && touchTimeout) {
       clearTimeout(touchTimeout);
@@ -2404,12 +2412,6 @@ class App extends React.Component<AppProps, AppState> {
       }
     }
   };
-  private attachLinkListener = () => {
-    this.canvas?.addEventListener("click", this.redirectToLink);
-  };
-  private detachLinkListener = () => {
-    this.canvas?.removeEventListener("click", this.redirectToLink);
-  };
 
   private handleCanvasPointerMove = (
     event: React.PointerEvent<HTMLCanvasElement>,
@@ -2654,10 +2656,8 @@ class App extends React.Component<AppProps, AppState> {
     ) {
       setCursor(this.canvas, CURSOR_TYPE.POINTER);
       showHyperlinkTooltip(this.hitLinkElement, this.state);
-      this.attachLinkListener();
     } else {
       hideHyperlinkToolip();
-      this.detachLinkListener();
       if (
         hitElement &&
         hitElement.link &&

+ 0 - 1
src/element/Hyperlink.tsx

@@ -321,7 +321,6 @@ export const isPointHittingLinkIcon = (
     x < linkX + threshold + linkWidth &&
     y > linkY - threshold &&
     y < linkY + linkHeight + threshold;
-
   return hitLink;
 };