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

This commit is contained in:
Aakansha Doshi 2022-03-17 21:03:59 +05:30 committed by GitHub
parent 8c0a0415de
commit ceb43ed8fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 });
}