|  | @@ -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)) {
 |