Explorar el Código

fix: erase all elements which are hit with single point click (#4934)

Aakansha Doshi hace 3 años
padre
commit
ceb43ed8fb
Se han modificado 1 ficheros con 6 adiciones y 7 borrados
  1. 6 7
      src/components/App.tsx

+ 6 - 7
src/components/App.tsx

@@ -4441,12 +4441,15 @@ class App extends React.Component<AppProps, AppState> {
             },
             this.state,
           );
-          const hitElement = this.getElementAtPosition(
+          const hitElements = this.getElementsAtPosition(
             scenePointer.x,
             scenePointer.y,
           );
 
-          pointerDownState.hit.element = hitElement;
+          hitElements.forEach(
+            (hitElement) =>
+              (pointerDownState.elementIdsToErase[hitElement.id] = true),
+          );
         }
         this.eraseElements(pointerDownState);
         return;
@@ -4592,16 +4595,12 @@ class App extends React.Component<AppProps, AppState> {
   }
 
   private eraseElements = (pointerDownState: PointerDownState) => {
-    const hitElement = pointerDownState.hit.element;
     const elements = this.scene.getElements().map((ele) => {
       if (pointerDownState.elementIdsToErase[ele.id]) {
         return newElementWith(ele, { isDeleted: true });
-      } else if (hitElement && ele.id === hitElement.id) {
-        return newElementWith(ele, { isDeleted: true });
       } else if (
         isBoundToContainer(ele) &&
-        (pointerDownState.elementIdsToErase[ele.containerId] ||
-          (hitElement && ele.containerId === hitElement.id))
+        pointerDownState.elementIdsToErase[ele.containerId]
       ) {
         return newElementWith(ele, { isDeleted: true });
       }