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/apply.ts | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'apps/web/src/lib/ripple/apply.ts') diff --git a/apps/web/src/lib/ripple/apply.ts b/apps/web/src/lib/ripple/apply.ts index 098a0247..f96e4600 100644 --- a/apps/web/src/lib/ripple/apply.ts +++ b/apps/web/src/lib/ripple/apply.ts @@ -1,4 +1,4 @@ -import type { TimelineTrack } from "@/lib/timeline/types"; +import type { SceneTracks, TimelineTrack } from "@/lib/timeline/types"; import { rippleShiftElements } from "./shift"; export interface RippleAdjustment { @@ -11,9 +11,9 @@ export function applyRippleAdjustments({ tracks, adjustments, }: { - tracks: TimelineTrack[]; + tracks: SceneTracks; adjustments: RippleAdjustment[]; -}): TimelineTrack[] { +}): SceneTracks { if (adjustments.length === 0) { return tracks; } @@ -25,12 +25,24 @@ export function applyRippleAdjustments({ adjustmentsByTrack.set(adjustment.trackId, trackAdjustments); } - return tracks.map((track) => - applyTrackRippleAdjustments({ - track, - adjustments: adjustmentsByTrack.get(track.id) ?? [], + return { + overlay: tracks.overlay.map((track) => + applyTrackRippleAdjustments({ + track, + adjustments: adjustmentsByTrack.get(track.id) ?? [], + }), + ), + main: applyTrackRippleAdjustments({ + track: tracks.main, + adjustments: adjustmentsByTrack.get(tracks.main.id) ?? [], }), - ); + audio: tracks.audio.map((track) => + applyTrackRippleAdjustments({ + track, + adjustments: adjustmentsByTrack.get(track.id) ?? [], + }), + ), + }; } function applyTrackRippleAdjustments< -- cgit v1.3.1