core-graphics
Version:
A core library for creating shape-based graphic editors
73 lines (59 loc) • 2.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
exports.default = modeStateReducer;
var _mode = require('../events/mode');
var _declarations = require('../../declarations');
var _data = require('../../utils/data');
var _icepick = require('icepick');
var i = _interopRequireWildcard(_icepick);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function modeStateReducer(currentState, ev) {
var set = modeSetReducer(currentState, ev);
return modePostReducer(set, ev);
}
function modeSetReducer(currentState, ev) {
if ((0, _mode.isEditorModeEvent)(ev) && (0, _mode.isSetModeEvent)(ev)) {
var mode = ev.payload.mode;
return i.chain(currentState).assoc('mode', mode).assocIn(['contextMenu', 'open'], false).value();
}
return currentState;
}
function modePostReducer(currentState, ev) {
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 ((0, _declarations.isSelectedMode)(mode)) {
var _ret = function () {
var presentShapes = currentState.scene.shapesOrder;
var ids = mode.payload.ids;
var nextSelected = i.filter(function (id) {
return (0, _data.hasInArr)(id, presentShapes);
}, ids);
if (nextSelected.length === 0) {
return {
v: i.assoc(currentState, 'mode', (0, _declarations.modeSelect)())
};
}
if (nextSelected.length !== ids.length) {
return {
v: i.assoc(currentState, 'mode', (0, _declarations.modeSelected)(nextSelected))
};
}
return {
v: currentState
};
}();
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
}
return currentState;
}