summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/commands/timeline/element/update-elements.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/lib/commands/timeline/element/update-elements.ts')
-rw-r--r--apps/web/src/lib/commands/timeline/element/update-elements.ts75
1 files changed, 0 insertions, 75 deletions
diff --git a/apps/web/src/lib/commands/timeline/element/update-elements.ts b/apps/web/src/lib/commands/timeline/element/update-elements.ts
deleted file mode 100644
index 54d1ca88..00000000
--- a/apps/web/src/lib/commands/timeline/element/update-elements.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import { EditorCore } from "@/core";
-import { Command, type CommandResult } from "@/lib/commands/base-command";
-import type { SceneTracks, TimelineElement } from "@/lib/timeline";
-import {
- findTrackInSceneTracks,
- updateElementInSceneTracks,
-} from "@/lib/timeline";
-import { applyElementUpdate } from "@/lib/timeline/update-pipeline";
-
-export class UpdateElementsCommand extends Command {
- private savedState: SceneTracks | null = null;
- private readonly updates: Array<{
- trackId: string;
- elementId: string;
- patch: Partial<TimelineElement>;
- }>;
-
- constructor({
- updates,
- }: {
- updates: Array<{
- trackId: string;
- elementId: string;
- patch: Partial<TimelineElement>;
- }>;
- }) {
- super();
- this.updates = updates;
- }
-
- execute(): CommandResult | undefined {
- const editor = EditorCore.getInstance();
- this.savedState = editor.scenes.getActiveScene().tracks;
- let updatedTracks = this.savedState;
-
- for (const updateEntry of this.updates) {
- const currentTrack = findTrackInSceneTracks({
- tracks: updatedTracks,
- trackId: updateEntry.trackId,
- });
- const currentElement = currentTrack?.elements.find(
- (element) => element.id === updateEntry.elementId,
- );
- if (!currentTrack || !currentElement) {
- continue;
- }
-
- const nextElement = applyElementUpdate({
- element: currentElement,
- patch: updateEntry.patch,
- context: {
- tracks: updatedTracks,
- trackId: updateEntry.trackId,
- },
- });
-
- updatedTracks = updateElementInSceneTracks({
- tracks: updatedTracks,
- trackId: updateEntry.trackId,
- elementId: updateEntry.elementId,
- update: () => nextElement,
- });
- }
-
- editor.timeline.updateTracks(updatedTracks);
- return undefined;
- }
-
- undo(): void {
- if (this.savedState) {
- const editor = EditorCore.getInstance();
- editor.timeline.updateTracks(this.savedState);
- }
- }
-}