HistoryEditor
Last updated
Last updated
The HistoryEditor
interface is added to the Editor
when it is instantiated using the withHistory
method.
This adds properties to editor
that enables undo and redo in Slate.
There are also static methods for working with the Editor's undo/redo history.
HistoryEditor.redo(editor: HistoryEditor): void
Redo to the next saved state.
HistoryEditor.undo(editor: HistoryEditor): void
Undo to the previous saved state.
HistoryEditor.withMerging(editor: HistoryEditor, fn: () => void): void
Apply a series of changes inside a synchronous fn
, These operations will be merged into the previous history.
HistoryEditor.withNewBatch(editor: HistoryEditor, fn: () => void): void
Apply a series of changes inside a synchronous fn
, ensuring that the first operation starts a new batch in the history. Subsequent operations will be merged as usual.
HistoryEditor.withoutMerging(editor: HistoryEditor, fn: () => void): void
Apply a series of changes inside a synchronous fn
, without merging any of the new operations into previous save point in the history.
HistoryEditor.withoutSaving(editor: HistoryEditor, fn: () => void): void
Apply a series of changes inside a synchronous fn
, without saving any of their operations into the history.
HistoryEditor.isHistoryEditor(value: any): value is HistoryEditor
Check if a value is a HistoryEditor
(i.e. it has the HistoryEditor
interface).
HistoryEditor.isMerging(editor: HistoryEditor): boolean | undefined
Get the merge flag's current value.
HistoryEditor.isSaving(editor: HistoryEditor): boolean | undefined
Get the saving flag's current value.
undo(): void
Undo the last batch of operations
redo(): void
Redo the last undone batch of operations
writeHistory(stack: 'undos'| 'redos', batch: any) => void
Push a batch of operations as either undos
or redos
onto editor.undos
or editor.redos