fix: deselect elements on viewMode toggle (#3741)

This commit is contained in:
David Luzar 2021-06-16 19:01:16 +02:00 committed by GitHub
parent 437afcbea4
commit 5cd921549a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 9 deletions

View File

@ -10,7 +10,6 @@ export const actionToggleViewMode = register({
appState: { appState: {
...appState, ...appState,
viewModeEnabled: !this.checked!(appState), viewModeEnabled: !this.checked!(appState),
selectedElementIds: {},
}, },
commitToHistory: false, commitToHistory: false,
}; };

View File

@ -922,14 +922,12 @@ class App extends React.Component<AppProps, AppState> {
} }
if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) { if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) {
this.setState( this.setState({ viewModeEnabled: !!this.props.viewModeEnabled });
{ viewModeEnabled: !!this.props.viewModeEnabled },
this.addEventListeners,
);
} }
if (prevState.viewModeEnabled !== this.state.viewModeEnabled) { if (prevState.viewModeEnabled !== this.state.viewModeEnabled) {
this.addEventListeners(); this.addEventListeners();
this.deselectElements();
} }
if (prevProps.zenModeEnabled !== this.props.zenModeEnabled) { if (prevProps.zenModeEnabled !== this.props.zenModeEnabled) {
@ -1770,15 +1768,19 @@ class App extends React.Component<AppProps, AppState> {
excalidrawContainer: this.excalidrawContainerRef.current, excalidrawContainer: this.excalidrawContainerRef.current,
}); });
// deselect all other elements when inserting text // deselect all other elements when inserting text
this.deselectElements();
// do an initial update to re-initialize element position since we were
// modifying element's x/y for sake of editor (case: syncing to remote)
updateElement(element.text);
}
private deselectElements() {
this.setState({ this.setState({
selectedElementIds: {}, selectedElementIds: {},
selectedGroupIds: {}, selectedGroupIds: {},
editingGroupId: null, editingGroupId: null,
}); });
// do an initial update to re-initialize element position since we were
// modifying element's x/y for sake of editor (case: syncing to remote)
updateElement(element.text);
} }
private getTextElementAtPosition( private getTextElementAtPosition(