@ -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 , elementTyp e) ;
setCursorForShape ( this . canvas , this . stat e) ;
}
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" ,