set elements as selected when inserted onto canvas
This commit is contained in:
parent
7b612bec5e
commit
f85f890b25
@ -7393,6 +7393,30 @@ class App extends React.Component<AppProps, AppState> {
|
|||||||
this.setState({ suggestedBindings });
|
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 {
|
private clearSelection(hitElement: ExcalidrawElement | null): void {
|
||||||
this.setState((prevState) => ({
|
this.setState((prevState) => ({
|
||||||
selectedElementIds: makeNextSelectedElementIds({}, prevState),
|
selectedElementIds: makeNextSelectedElementIds({}, prevState),
|
||||||
|
@ -99,6 +99,9 @@ const MermaidToExcalidraw = ({
|
|||||||
app.scene.replaceAllElements([...elements, ...canvasData.elements]);
|
app.scene.replaceAllElements([...elements, ...canvasData.elements]);
|
||||||
app.addFiles(Object.values(canvasData.files || []));
|
app.addFiles(Object.values(canvasData.files || []));
|
||||||
app.scrollToContent(canvasData.elements);
|
app.scrollToContent(canvasData.elements);
|
||||||
|
|
||||||
|
app.setSelection(canvasData.elements);
|
||||||
|
|
||||||
onClose();
|
onClose();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -527,6 +527,7 @@ export type AppClassProperties = {
|
|||||||
lastViewportPosition: App["lastViewportPosition"];
|
lastViewportPosition: App["lastViewportPosition"];
|
||||||
scrollToContent: App["scrollToContent"];
|
scrollToContent: App["scrollToContent"];
|
||||||
addFiles: App["addFiles"];
|
addFiles: App["addFiles"];
|
||||||
|
setSelection: App["setSelection"];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type PointerDownState = Readonly<{
|
export type PointerDownState = Readonly<{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user