ensure step before formatting is persisted in undo history

pull/21833/head
Bruno Windels 2019-09-05 15:34:42 +02:00
parent 8820546f49
commit 9dac91a70d
2 changed files with 8 additions and 3 deletions

View File

@ -437,6 +437,7 @@ export default class BasicMessageEditor extends React.Component {
if (range.length === 0) {
return;
}
this.historyManager.ensureLastChangesPushed(this.props.model);
switch (action) {
case "bold":
formatInline(range, "**");

View File

@ -106,6 +106,12 @@ export default class HistoryManager {
return shouldPush;
}
ensureLastChangesPushed(model) {
if (this._changedSinceLastPush) {
this._pushState(model, this._lastCaret);
}
}
canUndo() {
return this._currentIndex >= 1 || this._changedSinceLastPush;
}
@ -117,9 +123,7 @@ export default class HistoryManager {
// returns state that should be applied to model
undo(model) {
if (this.canUndo()) {
if (this._changedSinceLastPush) {
this._pushState(model, this._lastCaret);
}
this.ensureLastChangesPushed(model);
this._currentIndex -= 1;
return this._stack[this._currentIndex];
}