@gorpacrate/core-graphics
Version:
A core library for creating shape-based graphic editors
57 lines • 1.89 kB
JavaScript
;
exports.__esModule = true;
var i = require("icepick");
var context_menu_1 = require("./context-menu");
var cursor_1 = require("./cursor");
var draw_1 = require("./draw");
var graphical_context_1 = require("./graphical-context");
var grid_1 = require("./grid");
var history_1 = require("./history");
var input_1 = require("./input");
var mode_1 = require("./mode");
var move_1 = require("./move");
var move_viewport_1 = require("./move-viewport");
var preview_1 = require("./preview");
var resize_1 = require("./resize");
var rubber_band_select_1 = require("./rubber-band-select");
var select_1 = require("./select");
var shapes_1 = require("./shapes");
// order important here
// TODO return on independant portions if changed?
var REDUCERS = [
input_1["default"],
grid_1["default"],
graphical_context_1["default"],
shapes_1["default"],
select_1["default"],
move_viewport_1["default"],
rubber_band_select_1["default"],
move_1["default"],
resize_1["default"],
history_1["default"],
context_menu_1["default"],
draw_1["default"],
preview_1["default"],
mode_1["default"],
cursor_1["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
// );
}
exports["default"] = editorStateReducer;
//# sourceMappingURL=index.js.map