summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/commands
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-02-08 18:01:45 +0100
committerMaze Winther <mazewinther@gmail.com>2026-02-08 18:01:45 +0100
commitdc0b57cd6a5517dc6b57c6ebd1d0f6f7c8ee5e40 (patch)
tree065b4428b3a92266e2e3ea9c24023149f48c60e9 /apps/web/src/lib/commands
parenta218a52d2d6ffa3d4b358d5a50e0816c16ebd51e (diff)
downloadopencut-dc0b57cd6a5517dc6b57c6ebd1d0f6f7c8ee5e40.tar.gz
refactor: replace text-specific update command with generic
Diffstat (limited to 'apps/web/src/lib/commands')
-rw-r--r--apps/web/src/lib/commands/timeline/element/index.ts2
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-element.ts (renamed from apps/web/src/lib/commands/timeline/element/update-text-element.ts)23
2 files changed, 5 insertions, 20 deletions
diff --git a/apps/web/src/lib/commands/timeline/element/index.ts b/apps/web/src/lib/commands/timeline/element/index.ts
index 8b719afa..3f10baa4 100644
--- a/apps/web/src/lib/commands/timeline/element/index.ts
+++ b/apps/web/src/lib/commands/timeline/element/index.ts
@@ -5,7 +5,7 @@ export { UpdateElementTrimCommand } from "./update-element-trim";
export { UpdateElementDurationCommand } from "./update-element-duration";
export { UpdateElementStartTimeCommand } from "./update-element-start-time";
export { SplitElementsCommand } from "./split-elements";
-export { UpdateTextElementCommand } from "./update-text-element";
+export { UpdateElementCommand } from "./update-element";
export { ToggleElementsVisibilityCommand } from "./toggle-elements-visibility";
export { ToggleElementsMutedCommand } from "./toggle-elements-muted";
export { MoveElementCommand } from "./move-elements";
diff --git a/apps/web/src/lib/commands/timeline/element/update-text-element.ts b/apps/web/src/lib/commands/timeline/element/update-element.ts
index e3cc4a32..4ee54726 100644
--- a/apps/web/src/lib/commands/timeline/element/update-text-element.ts
+++ b/apps/web/src/lib/commands/timeline/element/update-element.ts
@@ -1,27 +1,14 @@
import { Command } from "@/lib/commands/base-command";
-import type { TextElement, TimelineTrack } from "@/types/timeline";
+import type { TimelineTrack } from "@/types/timeline";
import { EditorCore } from "@/core";
-export class UpdateTextElementCommand extends Command {
+export class UpdateElementCommand extends Command {
private savedState: TimelineTrack[] | null = null;
constructor(
private trackId: string,
private elementId: string,
- private updates: Partial<
- Pick<
- TextElement,
- | "content"
- | "fontSize"
- | "fontFamily"
- | "color"
- | "backgroundColor"
- | "textAlign"
- | "fontWeight"
- | "fontStyle"
- | "textDecoration"
- >
- >,
+ private updates: Partial<Record<string, unknown>>,
) {
super();
}
@@ -33,9 +20,7 @@ export class UpdateTextElementCommand extends Command {
const updatedTracks = this.savedState.map((t) => {
if (t.id !== this.trackId) return t;
const newElements = t.elements.map((el) =>
- el.id === this.elementId && el.type === "text"
- ? { ...el, ...this.updates }
- : el,
+ el.id === this.elementId ? { ...el, ...this.updates } : el,
);
return { ...t, elements: newElements } as typeof t;
});