From cbd1b8212370c67b34a70dccd21bd82de72fead2 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Tue, 7 Apr 2026 04:41:27 +0200 Subject: refactor: structured track layout per scene --- apps/web/src/lib/ripple/diff.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'apps/web/src/lib/ripple/diff.ts') diff --git a/apps/web/src/lib/ripple/diff.ts b/apps/web/src/lib/ripple/diff.ts index 22b8d996..49238738 100644 --- a/apps/web/src/lib/ripple/diff.ts +++ b/apps/web/src/lib/ripple/diff.ts @@ -1,5 +1,4 @@ - -import type { TimelineElement, TimelineTrack } from "@/lib/timeline/types"; +import type { SceneTracks, TimelineElement, TimelineTrack } from "@/lib/timeline/types"; import type { RippleAdjustment } from "./apply"; interface Interval { @@ -15,15 +14,25 @@ export function computeRippleAdjustments({ beforeTracks, afterTracks, }: { - beforeTracks: TimelineTrack[]; - afterTracks: TimelineTrack[]; + beforeTracks: SceneTracks; + afterTracks: SceneTracks; }): RippleAdjustment[] { - const afterTracksById = new Map(afterTracks.map((track) => [track.id, track])); + const beforeTrackList = [ + ...beforeTracks.overlay, + beforeTracks.main, + ...beforeTracks.audio, + ]; + const afterTrackList = [ + ...afterTracks.overlay, + afterTracks.main, + ...afterTracks.audio, + ]; + const afterTracksById = new Map(afterTrackList.map((track) => [track.id, track])); const allAfterElementIds = new Set( - afterTracks.flatMap((track) => track.elements.map((element) => element.id)), + afterTrackList.flatMap((track) => track.elements.map((element) => element.id)), ); - return beforeTracks.flatMap((beforeTrack): RippleAdjustment[] => + return beforeTrackList.flatMap((beforeTrack): RippleAdjustment[] => computeTrackRippleAdjustments({ trackId: beforeTrack.id, beforeElements: beforeTrack.elements, -- cgit v1.3.1