|  | @@ -214,6 +214,7 @@ import {
 | 
	
		
			
				|  |  |    withBatchedUpdates,
 | 
	
		
			
				|  |  |    wrapEvent,
 | 
	
		
			
				|  |  |    withBatchedUpdatesThrottled,
 | 
	
		
			
				|  |  | +  setEraserCursor,
 | 
	
		
			
				|  |  |  } from "../utils";
 | 
	
		
			
				|  |  |  import ContextMenu, { ContextMenuOption } from "./ContextMenu";
 | 
	
		
			
				|  |  |  import LayerUI from "./LayerUI";
 | 
	
	
		
			
				|  | @@ -1051,6 +1052,9 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |      ) {
 | 
	
		
			
				|  |  |        this.setState({ elementType: "selection" });
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    if (prevState.theme !== this.state.theme) {
 | 
	
		
			
				|  |  | +      setEraserCursor(this.canvas, this.state.theme);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      // Hide hyperlink popup if shown when element type is not selection
 | 
	
		
			
				|  |  |      if (
 | 
	
		
			
				|  |  |        prevState.elementType === "selection" &&
 | 
	
	
		
			
				|  | @@ -1873,7 +1877,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |        } else if (this.state.elementType === "selection") {
 | 
	
		
			
				|  |  |          resetCursor(this.canvas);
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +        setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |          this.setState({
 | 
	
		
			
				|  |  |            selectedElementIds: {},
 | 
	
		
			
				|  |  |            selectedGroupIds: {},
 | 
	
	
		
			
				|  | @@ -1899,7 +1903,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    private selectShapeTool(elementType: AppState["elementType"]) {
 | 
	
		
			
				|  |  |      if (!isHoldingSpace) {
 | 
	
		
			
				|  |  | -      setCursorForShape(this.canvas, elementType);
 | 
	
		
			
				|  |  | +      setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (isToolIcon(document.activeElement)) {
 | 
	
		
			
				|  |  |        this.focusContainer();
 | 
	
	
		
			
				|  | @@ -2043,7 +2047,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |            editingElement: null,
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          if (this.state.elementLocked) {
 | 
	
		
			
				|  |  | -          setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +          setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          this.focusContainer();
 | 
	
	
		
			
				|  | @@ -2525,7 +2529,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |        if (isOverScrollBar) {
 | 
	
		
			
				|  |  |          resetCursor(this.canvas);
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +        setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2575,7 +2579,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |        const { points, lastCommittedPoint } = multiElement;
 | 
	
		
			
				|  |  |        const lastPoint = points[points.length - 1];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +      setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        if (lastPoint === lastCommittedPoint) {
 | 
	
		
			
				|  |  |          // if we haven't yet created a temp point and we're beyond commit-zone
 | 
	
	
		
			
				|  | @@ -2689,7 +2693,9 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |        scenePointer,
 | 
	
		
			
				|  |  |        hitElement,
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    if (isEraserActive(this.state)) {
 | 
	
		
			
				|  |  | +      return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      if (
 | 
	
		
			
				|  |  |        this.hitLinkElement &&
 | 
	
		
			
				|  |  |        !this.state.selectedElementIds[this.hitLinkElement.id]
 | 
	
	
		
			
				|  | @@ -2706,8 +2712,6 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |          !this.state.showHyperlinkPopup
 | 
	
		
			
				|  |  |        ) {
 | 
	
		
			
				|  |  |          this.setState({ showHyperlinkPopup: "info" });
 | 
	
		
			
				|  |  | -      } else if (isEraserActive(this.state)) {
 | 
	
		
			
				|  |  | -        setCursor(this.canvas, CURSOR_TYPE.AUTO);
 | 
	
		
			
				|  |  |        } else if (this.state.elementType === "text") {
 | 
	
		
			
				|  |  |          setCursor(
 | 
	
		
			
				|  |  |            this.canvas,
 | 
	
	
		
			
				|  | @@ -2998,8 +3002,6 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |          hitElement,
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    if (isEraserActive(this.state)) {
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |      if (
 | 
	
		
			
				|  |  |        this.hitLinkElement &&
 | 
	
		
			
				|  |  |        !this.state.selectedElementIds[this.hitLinkElement.id]
 | 
	
	
		
			
				|  | @@ -3128,7 +3130,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |            if (this.state.viewModeEnabled) {
 | 
	
		
			
				|  |  |              setCursor(this.canvas, CURSOR_TYPE.GRAB);
 | 
	
		
			
				|  |  |            } else {
 | 
	
		
			
				|  |  | -            setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +            setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          this.setState({
 | 
	
	
		
			
				|  | @@ -3253,7 +3255,7 @@ class App extends React.Component<AppProps, AppState> {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const onPointerUp = withBatchedUpdates(() => {
 | 
	
		
			
				|  |  |        isDraggingScrollBar = false;
 | 
	
		
			
				|  |  | -      setCursorForShape(this.canvas, this.state.elementType);
 | 
	
		
			
				|  |  | +      setCursorForShape(this.canvas, this.state);
 | 
	
		
			
				|  |  |        lastPointerUp = null;
 | 
	
		
			
				|  |  |        this.setState({
 | 
	
		
			
				|  |  |          cursorButton: "up",
 |