dash-renderer
Version:
render dash components in react
60 lines (59 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var initialHistory = {
past: [],
present: {},
future: []
};
function history() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialHistory;
var action = arguments.length > 1 ? arguments[1] : undefined;
switch (action.type) {
case 'UNDO':
{
var past = state.past,
present = state.present,
future = state.future;
var previous = past[past.length - 1];
var newPast = past.slice(0, past.length - 1);
return {
past: newPast,
present: previous,
future: [present, ...future]
};
}
case 'REDO':
{
var _past = state.past,
_present = state.present,
_future = state.future;
var next = _future[0];
var newFuture = _future.slice(1);
return {
past: [..._past, _present],
present: next,
future: newFuture
};
}
case 'REVERT':
{
var _past2 = state.past,
_future2 = state.future;
var _previous = _past2[_past2.length - 1];
var _newPast = _past2.slice(0, _past2.length - 1);
return {
past: _newPast,
present: _previous,
future: [..._future2]
};
}
default:
{
return state;
}
}
}
var _default = exports.default = history;