From ea59cc395075c1961fa5d7984f7becde3b949e1f Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Tue, 8 Jul 2025 00:42:46 +0200 Subject: fix: ensure timeline clips can be extended to longer than 5s --- apps/web/src/stores/timeline-store.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'apps/web/src/stores/timeline-store.ts') diff --git a/apps/web/src/stores/timeline-store.ts b/apps/web/src/stores/timeline-store.ts index 6d1a0bd1..6de24c84 100644 --- a/apps/web/src/stores/timeline-store.ts +++ b/apps/web/src/stores/timeline-store.ts @@ -87,6 +87,11 @@ interface TimelineStore { trimStart: number, trimEnd: number ) => void; + updateElementDuration: ( + trackId: string, + elementId: string, + duration: number + ) => void; updateElementStartTime: ( trackId: string, elementId: string, @@ -284,7 +289,9 @@ export const useTimelineStore = create((set, get) => { removeTrack: (trackId) => { get().pushHistory(); - updateTracksAndSave(get()._tracks.filter((track) => track.id !== trackId)); + updateTracksAndSave( + get()._tracks.filter((track) => track.id !== trackId) + ); }, addElementToTrack: (trackId, elementData) => { @@ -439,6 +446,22 @@ export const useTimelineStore = create((set, get) => { ); }, + updateElementDuration: (trackId, elementId, duration) => { + get().pushHistory(); + updateTracksAndSave( + get()._tracks.map((track) => + track.id === trackId + ? { + ...track, + elements: track.elements.map((element) => + element.id === elementId ? { ...element, duration } : element + ), + } + : track + ) + ); + }, + updateElementStartTime: (trackId, elementId, startTime) => { get().pushHistory(); updateTracksAndSave( -- cgit v1.3.1