in src/model/immutable/EditorState.js [517:545]
static undo(editorState: EditorState): EditorState {
if (!editorState.getAllowUndo()) {
return editorState;
}
const undoStack = editorState.getUndoStack();
const newCurrentContent = undoStack.peek();
if (!newCurrentContent) {
return editorState;
}
const currentContent = editorState.getCurrentContent();
const directionMap = EditorBidiService.getDirectionMap(
newCurrentContent,
editorState.getDirectionMap(),
);
return EditorState.set(editorState, {
currentContent: newCurrentContent,
directionMap,
undoStack: undoStack.shift(),
redoStack: editorState.getRedoStack().push(currentContent),
forceSelection: true,
inlineStyleOverride: null,
lastChangeType: 'undo',
nativelyRenderedContent: null,
selection: currentContent.getSelectionBefore(),
});
}