@gorpacrate/core-graphics
Version:
A core library for creating shape-based graphic editors
32 lines • 1.3 kB
JavaScript
;
exports.__esModule = true;
var i = require("icepick");
var declarations_1 = require("../../declarations");
function updateCursorState(state, cursor) {
return i.assocIn(state, ['mouse', 'cursor'], cursor);
}
function cursorStateReducer(currentState) {
var mode = currentState.mode;
if (declarations_1.isResizingMode(mode)) {
var cursor = mode.payload.handle.cursor;
return updateCursorState(currentState, cursor);
}
if (declarations_1.isMovingMode(mode)) {
return updateCursorState(currentState, 'move');
}
if (declarations_1.isDrawingShapeMode(mode)) {
var shapesDeclarations = currentState.shapesDeclarations;
var shapeType = mode.payload.shapeType;
var drawingModeCursor = shapesDeclarations[shapeType].drawingModeCursor;
return updateCursorState(currentState, drawingModeCursor);
}
if (declarations_1.isRubberBandSelectionMode(mode)) {
return updateCursorState(currentState, 'default');
}
if (declarations_1.isMovingViewportMode(mode)) {
return updateCursorState(currentState, mode.payload.moving ? 'move' : 'default');
}
return i.merge(currentState, { mouse: { cursor: undefined } });
}
exports["default"] = cursorStateReducer;
//# sourceMappingURL=cursor.js.map