mirror of
https://github.com/OpenCut-app/OpenCut.git
synced 2026-07-13 21:52:53 +02:00
refactor: replace text-specific update command with generic
This commit is contained in:
@@ -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";
|
||||
|
||||
+4
-19
@@ -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;
|
||||
});
|
||||
Reference in New Issue
Block a user