Browse Source

fix: double state update incorrectly resetting state (#5704)

Co-authored-by: David Luzar <luzar.david@gmail.com>
zsviczian 2 years ago
parent
commit
9929a2be6f
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/components/App.tsx

+ 5 - 1
src/components/App.tsx

@@ -1153,7 +1153,11 @@ class App extends React.Component<AppProps, AppState> {
     ) {
       // defer so that the commitToHistory flag isn't reset via current update
       setTimeout(() => {
-        this.actionManager.executeAction(actionFinalize);
+        // execute only if the condition still holds when the deferred callback
+        // executes (it can be scheduled multiple times depending on how
+        // many times the component renders)
+        this.state.editingLinearElement &&
+          this.actionManager.executeAction(actionFinalize);
       });
     }