|
|
|
|
@ -1514,20 +1514,13 @@ class App extends React.Component<ExcalidrawProps, AppState> {
@@ -1514,20 +1514,13 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
|
|
|
isExistingElement?: boolean; |
|
|
|
|
}, |
|
|
|
|
) { |
|
|
|
|
const resetSelection = () => { |
|
|
|
|
this.setState({ |
|
|
|
|
draggingElement: null, |
|
|
|
|
editingElement: null, |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const updateElement = (text: string) => { |
|
|
|
|
const updateElement = (text: string, isDeleted = false) => { |
|
|
|
|
globalSceneState.replaceAllElements([ |
|
|
|
|
...globalSceneState.getElementsIncludingDeleted().map((_element) => { |
|
|
|
|
if (_element.id === element.id && isTextElement(_element)) { |
|
|
|
|
return updateTextElement(_element, { |
|
|
|
|
text, |
|
|
|
|
isDeleted: !text.trim(), |
|
|
|
|
isDeleted, |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
return _element; |
|
|
|
|
@ -1551,25 +1544,27 @@ class App extends React.Component<ExcalidrawProps, AppState> {
@@ -1551,25 +1544,27 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
|
|
|
updateElement(text); |
|
|
|
|
}), |
|
|
|
|
onSubmit: withBatchedUpdates((text) => { |
|
|
|
|
updateElement(text); |
|
|
|
|
this.setState((prevState) => ({ |
|
|
|
|
selectedElementIds: { |
|
|
|
|
...prevState.selectedElementIds, |
|
|
|
|
[element.id]: true, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
if (this.state.elementLocked) { |
|
|
|
|
setCursorForShape(this.state.elementType); |
|
|
|
|
const isDeleted = !text.trim(); |
|
|
|
|
updateElement(text, isDeleted); |
|
|
|
|
if (!isDeleted) { |
|
|
|
|
this.setState((prevState) => ({ |
|
|
|
|
selectedElementIds: { |
|
|
|
|
...prevState.selectedElementIds, |
|
|
|
|
[element.id]: true, |
|
|
|
|
}, |
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
history.resumeRecording(); |
|
|
|
|
resetSelection(); |
|
|
|
|
}), |
|
|
|
|
onCancel: withBatchedUpdates(() => { |
|
|
|
|
updateElement(""); |
|
|
|
|
if (isExistingElement) { |
|
|
|
|
if (!isDeleted || isExistingElement) { |
|
|
|
|
history.resumeRecording(); |
|
|
|
|
} |
|
|
|
|
resetSelection(); |
|
|
|
|
|
|
|
|
|
this.setState({ |
|
|
|
|
draggingElement: null, |
|
|
|
|
editingElement: null, |
|
|
|
|
}); |
|
|
|
|
if (this.state.elementLocked) { |
|
|
|
|
setCursorForShape(this.state.elementType); |
|
|
|
|
} |
|
|
|
|
}), |
|
|
|
|
}); |
|
|
|
|
// deselect all other elements when inserting text
|
|
|
|
|
|