set elements as selected when inserted onto canvas

This commit is contained in:
Aakansha Doshi 2023-08-23 16:24:37 +05:30
parent 7b612bec5e
commit f85f890b25
3 changed files with 28 additions and 0 deletions

View file

@ -7393,6 +7393,30 @@ class App extends React.Component<AppProps, AppState> {
this.setState({ suggestedBindings });
}
public setSelection(elements: readonly NonDeletedExcalidrawElement[]) {
const selectedElementIds: { [id: string]: true } = {};
const selectedGroupIds: { [id: string]: true } = {};
elements.forEach((ele) => {
if (ele.groupIds.length) {
selectedElementIds[ele.id] = true;
ele.groupIds.forEach((id) => {
selectedGroupIds[id] = true;
});
}
// exclude bound text elements as we don't mark them as selected when
// container is selected unless in group
else if (!isBoundToContainer(ele)) {
selectedElementIds[ele.id] = true;
}
});
this.setState({
previousSelectedElementIds: this.state.selectedElementIds,
selectedElementIds,
selectedGroupIds,
});
}
private clearSelection(hitElement: ExcalidrawElement | null): void {
this.setState((prevState) => ({
selectedElementIds: makeNextSelectedElementIds({}, prevState),