UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

95 lines (58 loc) 2.96 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = editorStateReducer; var _input = require('./input'); var _input2 = _interopRequireDefault(_input); var _mode = require('./mode'); var _mode2 = _interopRequireDefault(_mode); var _contextMenu = require('./context-menu'); var _contextMenu2 = _interopRequireDefault(_contextMenu); var _grid = require('./grid'); var _grid2 = _interopRequireDefault(_grid); var _graphicalContext = require('./graphical-context'); var _graphicalContext2 = _interopRequireDefault(_graphicalContext); var _draw = require('./draw'); var _draw2 = _interopRequireDefault(_draw); var _move = require('./move'); var _move2 = _interopRequireDefault(_move); var _resize = require('./resize'); var _resize2 = _interopRequireDefault(_resize); var _select = require('./select'); var _select2 = _interopRequireDefault(_select); var _moveViewport = require('./move-viewport'); var _moveViewport2 = _interopRequireDefault(_moveViewport); var _rubberBandSelect = require('./rubber-band-select'); var _rubberBandSelect2 = _interopRequireDefault(_rubberBandSelect); var _shapes = require('./shapes'); var _shapes2 = _interopRequireDefault(_shapes); var _preview = require('./preview'); var _preview2 = _interopRequireDefault(_preview); var _history = require('./history'); var _history2 = _interopRequireDefault(_history); var _cursor = require('./cursor'); var _cursor2 = _interopRequireDefault(_cursor); 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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // order important here // TODO return on independant portions if changed? var REDUCERS = [_input2.default, _grid2.default, _graphicalContext2.default, _shapes2.default, _select2.default, _moveViewport2.default, _rubberBandSelect2.default, _move2.default, _resize2.default, _history2.default, _contextMenu2.default, _draw2.default, _preview2.default, _mode2.default, _cursor2.default]; function editorStateReducer(currentState, ev) { var persistedScene = currentState.persistedScene; var resetState = i.chain(currentState).assoc('scene', persistedScene).assoc('previewedHistoryEvents', []).assoc('editorActionsQueue', []).value(); return REDUCERS.reduce(function (resultState, fn) { return fn(resultState, ev); }, resetState); // return REDUCERS.reduce( // (resultState, fn) => { // const res = fn(resultState, ev); // if (res.mode !== resultState.mode) { // console.log(fn.name); // } // return res; // }, resetState // ); }