Skip to contents

Getting started

The one call that turns undo on, and the one that extends it to state Shiny cannot see for itself.

rewind_enable()
Enable undo and redo for a Shiny session
rewind_track()
Include server-side reactive values in the history

Controlling what becomes a step

Time-based coalescing handles the common case. These are for when the boundary between steps is a decision rather than a pause, or when capture needs to stop altogether.

rewind_step()
Group several changes into one undo step
rewind_pause() rewind_resume()
Suspend and resume history capture
rewind_disable()
Fully disable undo/redo for a session

Driving the history yourself

The keyboard shortcuts and the bundled buttons cover most needs; these let you wire the history to your own controls, and read its state reactively.

rewind_undo() rewind_redo() rewind_jump() rewind_clear()
Move through the history programmatically
rewind_history() rewind_can_undo() rewind_can_redo()
Inspect the history

User interface

Drop-in controls, and the asset bundle behind them.

rewind_buttons()
Undo and redo buttons
rewind_ui()
A scrubbable history rail
rewind_dependency()
The rewind HTML dependency

Package

rewind rewind-package
rewind: Undo and Redo for 'Shiny' Applications