use-flexible-undo

React hook that lets you use undomundo's branching undo/redo functionality independently of how you structure your application state.