Show HN: Redux-undo – Simple undo/redo functionality for Redux state containers
github.comWhat about undoing on the server though? Doing that on the client only isn't very good useful in most situations I can think of.
That's an interesting question. The simplest way would be listening to state changes in the store and then syncing the state with the server. Since undos/redos are normal redux actions, you can just handle them like any other action in redux.
For example, in an application I wrote, I do `store.subscribe(autoSaveFunction)` which will automatically save all changes to the state. Of course, you can also only store parts of the state, etc, but this is more redux related than redux-undo related.
Does it also work with immutable data-structures?
I haven't tested it yet, but it should. The magic behind redux-undo is a reducer enhancer (higher order reducer) - it returns a function that processes undo/redo and then (if appropriate) calls your reducer. If your reducer uses immutable data-structures, redux-undo will simply store your data (immutable or not) in the history.
redux-undo itself doesn't use immutable data structures, though (for dependency reasons). However, I do make sure not to change any data directly. (you know, the usual redux reducer guidelines)