diff options
Diffstat (limited to 'apps/web/src/stores')
| -rw-r--r-- | apps/web/src/stores/timeline-store.ts | 25 |
1 files changed, 24 insertions, 1 deletions
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<TimelineStore>((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<TimelineStore>((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( |
