UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

73 lines (59 loc) 2.62 kB
'use strict'; 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; }