From 5cd921549a7e2b67219ee3f10d98228e23103c0f Mon Sep 17 00:00:00 2001 From: David Luzar Date: Wed, 16 Jun 2021 19:01:16 +0200 Subject: [PATCH] fix: deselect elements on viewMode toggle (#3741) --- src/actions/actionToggleViewMode.tsx | 1 - src/components/App.tsx | 18 ++++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/actions/actionToggleViewMode.tsx b/src/actions/actionToggleViewMode.tsx index 0808a5d5..d18b5eef 100644 --- a/src/actions/actionToggleViewMode.tsx +++ b/src/actions/actionToggleViewMode.tsx @@ -10,7 +10,6 @@ export const actionToggleViewMode = register({ appState: { ...appState, viewModeEnabled: !this.checked!(appState), - selectedElementIds: {}, }, commitToHistory: false, }; diff --git a/src/components/App.tsx b/src/components/App.tsx index f97a0a8c..146a65b0 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -922,14 +922,12 @@ class App extends React.Component { } if (prevProps.viewModeEnabled !== this.props.viewModeEnabled) { - this.setState( - { viewModeEnabled: !!this.props.viewModeEnabled }, - this.addEventListeners, - ); + this.setState({ viewModeEnabled: !!this.props.viewModeEnabled }); } if (prevState.viewModeEnabled !== this.state.viewModeEnabled) { this.addEventListeners(); + this.deselectElements(); } if (prevProps.zenModeEnabled !== this.props.zenModeEnabled) { @@ -1770,15 +1768,19 @@ class App extends React.Component { excalidrawContainer: this.excalidrawContainerRef.current, }); // 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({ selectedElementIds: {}, selectedGroupIds: {}, 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(