Fix undoOnce (#332)

I just pasted @enzoferey's implementation and it fixed the bug reported by @dwelle

Fixes #307
This commit is contained in:
Christopher Chedeau 2020-01-11 20:45:56 -08:00 committed by GitHub
parent dd2a7eb597
commit 44657efe71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 9 deletions

View File

@ -51,15 +51,15 @@ class SceneHistory {
return null;
}
undoOnce(elements: readonly ExcalidrawElement[]) {
const currentEntry = this.generateCurrentEntry(elements);
let entryToRestore = this.stateHistory.pop();
// If nothing was changed since last, take the previous one
if (currentEntry === entryToRestore) {
entryToRestore = this.stateHistory.pop();
undoOnce() {
if (this.stateHistory.length === 0) {
return null;
}
if (entryToRestore !== undefined) {
const currentEntry = this.stateHistory.pop();
const entryToRestore = this.stateHistory[this.stateHistory.length - 1];
if (currentEntry !== undefined) {
this.redoStack.push(currentEntry);
return this.restoreEntry(entryToRestore);
}

View File

@ -256,7 +256,7 @@ export class App extends React.Component<{}, AppState> {
}
} else {
// undo action
const data = history.undoOnce(elements);
const data = history.undoOnce();
if (data !== null) {
elements = data;
}