|  | @@ -28,7 +28,7 @@ import { renderScene } from "./renderer";
 | 
	
		
			
				|  |  |  import { AppState } from "./types";
 | 
	
		
			
				|  |  |  import { ExcalidrawElement, ExcalidrawTextElement } from "./element/types";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import { getDateTime, isInputLike, measureText } from "./utils";
 | 
	
		
			
				|  |  | +import { getDateTime, isInputLike, measureText, debounce } from "./utils";
 | 
	
		
			
				|  |  |  import { KEYS, META_KEY, isArrowKey } from "./keys";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import { findShapeByKey, shapesShortcutKeys } from "./shapes";
 | 
	
	
		
			
				|  | @@ -1016,13 +1016,17 @@ export class App extends React.Component<{}, AppState> {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  private saveDebounced = debounce(() => {
 | 
	
		
			
				|  |  | +    saveToLocalStorage(elements, this.state);
 | 
	
		
			
				|  |  | +  }, 300);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    componentDidUpdate() {
 | 
	
		
			
				|  |  |      renderScene(elements, this.rc!, this.canvas!, {
 | 
	
		
			
				|  |  |        scrollX: this.state.scrollX,
 | 
	
		
			
				|  |  |        scrollY: this.state.scrollY,
 | 
	
		
			
				|  |  |        viewBackgroundColor: this.state.viewBackgroundColor
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | -    saveToLocalStorage(elements, this.state);
 | 
	
		
			
				|  |  | +    this.saveDebounced();
 | 
	
		
			
				|  |  |      if (history.isRecording()) {
 | 
	
		
			
				|  |  |        history.pushEntry(history.generateCurrentEntry(elements));
 | 
	
		
			
				|  |  |        history.clearRedoStack();
 |