UNPKG

@gorpacrate/core-graphics

Version:

A core library for creating shape-based graphic editors

47 lines 1.72 kB
"use strict"; exports.__esModule = true; var i = require("icepick"); var declarations_1 = require("../../declarations"); var data_1 = require("../../utils/data"); var mode_1 = require("../events/mode"); function modeStateReducer(currentState, ev) { var set = modeSetReducer(currentState, ev); return modePostReducer(set); } exports["default"] = modeStateReducer; function modeSetReducer(currentState, ev) { if (mode_1.isEditorModeEvent(ev) && mode_1.isSetModeEvent(ev)) { var mode = ev.payload.mode; return i.chain(currentState) .assoc('mode', mode) .assocIn(['contextMenu', 'open'], false) .value(); } return currentState; } function modePostReducer(currentState) { var mode = currentState.mode; // if (isSubSelectedMode(mode)) { // const presentShapes = currentState.scene.shapesOrder; // const { id } = mode.payload; // if (!hasInArr(id, presentShapes)) { // return i.assoc(currentState, 'mode', modeSelect()); // } else { // return currentState; // } // } if (declarations_1.isSelectedMode(mode)) { var presentShapes_1 = currentState.scene.shapesOrder; var ids = mode.payload.ids; var nextSelected = i.filter(function (id) { return data_1.hasInArr(id, presentShapes_1); }, ids); if (nextSelected.length === 0) { return i.assoc(currentState, 'mode', declarations_1.modeSelect()); } if (nextSelected.length !== ids.length) { return i.assoc(currentState, 'mode', declarations_1.modeSelected(nextSelected)); } return currentState; } return currentState; } //# sourceMappingURL=mode.js.map