Browse Source

Fix three rendering when loading (#986)

The problem is that syncActionResult wasn't using batching.
Christopher Chedeau 5 years ago
parent
commit
0dc07135b7
1 changed files with 21 additions and 22 deletions
  1. 21 22
      src/components/App.tsx

+ 21 - 22
src/components/App.tsx

@@ -186,31 +186,30 @@ export class App extends React.Component<any, AppState> {
     this.actionManager.registerAction(createRedoAction(history));
   }
 
-  private syncActionResult = (
-    res: ActionResult,
-    commitToHistory: boolean = true,
-  ) => {
-    if (this.unmounted) {
-      return;
-    }
-    if (res.elements) {
-      globalSceneState.replaceAllElements(res.elements);
-      if (commitToHistory) {
-        history.resumeRecording();
+  private syncActionResult = withBatchedUpdates(
+    (res: ActionResult, commitToHistory: boolean = true) => {
+      if (this.unmounted) {
+        return;
+      }
+      if (res.elements) {
+        globalSceneState.replaceAllElements(res.elements);
+        if (commitToHistory) {
+          history.resumeRecording();
+        }
       }
-    }
 
-    if (res.appState) {
-      if (commitToHistory) {
-        history.resumeRecording();
+      if (res.appState) {
+        if (commitToHistory) {
+          history.resumeRecording();
+        }
+        this.setState(state => ({
+          ...res.appState,
+          isCollaborating: state.isCollaborating,
+          collaborators: state.collaborators,
+        }));
       }
-      this.setState(state => ({
-        ...res.appState,
-        isCollaborating: state.isCollaborating,
-        collaborators: state.collaborators,
-      }));
-    }
-  };
+    },
+  );
 
   private onCut = withBatchedUpdates((event: ClipboardEvent) => {
     if (isWritableElement(event.target)) {