diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-03-27 00:55:15 +0100 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-03-29 15:56:48 +0200 |
| commit | 4d127a038bf768eded68aae3cfa5c1b12241bdac (patch) | |
| tree | 16bbb801caf6770546cff4fdb37b6408ec9ead98 /apps/web/src/core/managers/commands.ts | |
| parent | 82817cb50cb0487350573d6129130aec705f924b (diff) | |
| download | opencut-4d127a038bf768eded68aae3cfa5c1b12241bdac.tar.gz | |
chore: normalize line endings
Diffstat (limited to 'apps/web/src/core/managers/commands.ts')
| -rw-r--r-- | apps/web/src/core/managers/commands.ts | 98 |
1 files changed, 49 insertions, 49 deletions
diff --git a/apps/web/src/core/managers/commands.ts b/apps/web/src/core/managers/commands.ts index 46ee643a..d4d4c35c 100644 --- a/apps/web/src/core/managers/commands.ts +++ b/apps/web/src/core/managers/commands.ts @@ -1,49 +1,49 @@ -import type { Command } from "@/lib/commands"; - -export class CommandManager { - private history: Command[] = []; - private redoStack: Command[] = []; - - execute({ command }: { command: Command }): Command { - command.execute(); - this.history.push(command); - this.redoStack = []; - return command; - } - - push({ command }: { command: Command }): void { - this.history.push(command); - this.redoStack = []; - } - - undo(): void { - if (this.history.length === 0) return; - const command = this.history.pop(); - command?.undo(); - if (command) { - this.redoStack.push(command); - } - } - - redo(): void { - if (this.redoStack.length === 0) return; - const command = this.redoStack.pop(); - command?.redo(); - if (command) { - this.history.push(command); - } - } - - canUndo(): boolean { - return this.history.length > 0; - } - - canRedo(): boolean { - return this.redoStack.length > 0; - } - - clear(): void { - this.history = []; - this.redoStack = []; - } -} +import type { Command } from "@/lib/commands";
+
+export class CommandManager {
+ private history: Command[] = [];
+ private redoStack: Command[] = [];
+
+ execute({ command }: { command: Command }): Command {
+ command.execute();
+ this.history.push(command);
+ this.redoStack = [];
+ return command;
+ }
+
+ push({ command }: { command: Command }): void {
+ this.history.push(command);
+ this.redoStack = [];
+ }
+
+ undo(): void {
+ if (this.history.length === 0) return;
+ const command = this.history.pop();
+ command?.undo();
+ if (command) {
+ this.redoStack.push(command);
+ }
+ }
+
+ redo(): void {
+ if (this.redoStack.length === 0) return;
+ const command = this.redoStack.pop();
+ command?.redo();
+ if (command) {
+ this.history.push(command);
+ }
+ }
+
+ canUndo(): boolean {
+ return this.history.length > 0;
+ }
+
+ canRedo(): boolean {
+ return this.redoStack.length > 0;
+ }
+
+ clear(): void {
+ this.history = [];
+ this.redoStack = [];
+ }
+}
|
