Undo/Redo buttons, refactor menu toggles (#793)

* Make Undo & Redo and the menu buttons into actions; add undo/redo buttons

* Create variables for the ToolIcon colors

* Darken the menu buttons when they’re active

* Put the more intensive test in `perform`

* Fix & restyle hint viewer

* Add pinch zoom for macOS Safari

* Chrome/Firefox trackpad pinch zoom

* openedMenu → openMenu

* needsShapeEditor.ts → showSelectedShapeActions.ts

* Call showSelectedShapeActions
This commit is contained in:
Jed Fox 2020-03-01 14:39:03 -05:00 committed by GitHub
parent 0ee33fe341
commit 8e0206cc1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 271 additions and 127 deletions

View file

@ -2,7 +2,12 @@ import { AppState } from "./types";
import { ExcalidrawElement } from "./element/types";
import { clearAppStatePropertiesForHistory } from "./appState";
class SceneHistory {
type Result = {
appState: AppState;
elements: ExcalidrawElement[];
};
export class SceneHistory {
private recording: boolean = true;
private stateHistory: string[] = [];
private redoStack: string[] = [];
@ -53,7 +58,7 @@ class SceneHistory {
this.redoStack.splice(0, this.redoStack.length);
}
redoOnce() {
redoOnce(): Result | null {
if (this.redoStack.length === 0) {
return null;
}
@ -68,7 +73,7 @@ class SceneHistory {
return null;
}
undoOnce() {
undoOnce(): Result | null {
if (this.stateHistory.length === 0) {
return null;
}