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/timeline/index.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'apps/web/src/lib/timeline/index.ts') diff --git a/apps/web/src/lib/timeline/index.ts b/apps/web/src/lib/timeline/index.ts index 194cd84b..5ee079b1 100644 --- a/apps/web/src/lib/timeline/index.ts +++ b/apps/web/src/lib/timeline/index.ts @@ -1,4 +1,4 @@ -import type { TimelineTrack } from "./types"; +import type { SceneTracks } from "./types"; export * from "./types"; export * from "./drag"; @@ -13,11 +13,12 @@ export * from "./pixel-utils"; export function calculateTotalDuration({ tracks, }: { - tracks: TimelineTrack[]; + tracks: SceneTracks; }): number { - if (tracks.length === 0) return 0; + const orderedTracks = [...tracks.overlay, tracks.main, ...tracks.audio]; + if (orderedTracks.length === 0) return 0; - const trackEndTimes = tracks.map((track) => + const trackEndTimes = orderedTracks.map((track) => track.elements.reduce((maxEnd, element) => { const elementEnd = element.startTime + element.duration; return Math.max(maxEnd, elementEnd); -- cgit v1.3.1