0.1.7 • Published 5 years ago
patched-undo-peasy v0.1.7
Undo/Redo support for easy peasy.
patched-undo-peasy depends on an easy peasy fork. (but modifying undo-peasy to depend on stock easy-peasy should be straightforward.)
Usage
- Attach
undoRedoMiddleWareincreateStore.const store = createStore(appModel, { middleware: [undoRedo()], }); - If using typescript, the root application model should extend
WithUndo.WithUndowill add types for undo actions and undo history to your root model.``` interface Model extends WithUndo { count: number; increment: Action<Model>; } ``` - Wrap the root application instance in
undoable.undoablewill add types for undo actions and undo history to your root model.``` const appModel: Model = undoable({ count: 0, increment: action((state) => { state.count++; }), }); ``` - Profit
const undoAction = useStoreActions((actions) => actions.undoUndo);
Supported Actions
undoUndo- restore state to the most recently saved version.undoRedo- restore state to the most recently undone version.undoSave- save current application state to undo history. undoSave is generated automatically by the middleware, but in rare cases it's useful to save manually.undoReset- erases saved undo/redo history and saves the current state.
Configuration
The undoRedo() middleware function accepts an optional configuration object.
noSaveActions- a function that tells undoRedo to not save certain actions to undo/redo history.noSaveKeys- a function tthat tells undoRedo not to save certain keys inside the state model to undo/redo history. e.g. view state in the model.