HistoryEditor
The HistoryEditor interface is added to the Editor when it is instantiated using the withHistory method.
const [editor] = useState(() => withReact(withHistory(createEditor())))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.
export interface HistoryEditor extends BaseEditor {
history: History
undo: () => void
redo: () => void
writeHistory: (stack: 'undos' | 'redos', batch: any) => void
}Static methods
Undo and Redo
HistoryEditor.redo(editor: HistoryEditor): void
HistoryEditor.redo(editor: HistoryEditor): voidRedo to the next saved state.
HistoryEditor.undo(editor: HistoryEditor): void
HistoryEditor.undo(editor: HistoryEditor): voidUndo to the previous saved state.
Merging and Saving
HistoryEditor.withMerging(editor: HistoryEditor, fn: () => void): void
HistoryEditor.withMerging(editor: HistoryEditor, fn: () => void): voidApply a series of changes inside a synchronous fn, These operations will be merged into the previous history.
HistoryEditor.withNewBatch(editor: HistoryEditor, fn: () => void): void
HistoryEditor.withNewBatch(editor: HistoryEditor, fn: () => void): voidApply 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
HistoryEditor.withoutMerging(editor: HistoryEditor, fn: () => void): voidApply 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
HistoryEditor.withoutSaving(editor: HistoryEditor, fn: () => void): voidApply a series of changes inside a synchronous fn, without saving any of their operations into the history.
Check methods
HistoryEditor.isHistoryEditor(value: any): value is HistoryEditor
HistoryEditor.isHistoryEditor(value: any): value is HistoryEditorCheck if a value is a HistoryEditor (i.e. it has the HistoryEditor interface).
HistoryEditor.isMerging(editor: HistoryEditor): boolean | undefined
HistoryEditor.isMerging(editor: HistoryEditor): boolean | undefinedGet the merge flag's current value.
HistoryEditor.isSaving(editor: HistoryEditor): boolean | undefined
HistoryEditor.isSaving(editor: HistoryEditor): boolean | undefinedGet the saving flag's current value.
Instance methods
undo(): void
undo(): voidUndo the last batch of operations
redo(): void
redo(): voidRedo the last undone batch of operations
writeHistory(stack: 'undos'| 'redos', batch: any) => void
writeHistory(stack: 'undos'| 'redos', batch: any) => voidPush a batch of operations as either undos or redos onto editor.undos or editor.redos
Last updated