summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/service.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-07 04:41:27 +0200
committerMaze Winther <mazewinther@gmail.com>2026-04-07 04:41:27 +0200
commitcbd1b8212370c67b34a70dccd21bd82de72fead2 (patch)
treed97cbee2aae22c22b59c59a50e9f8a6af0ae8ccf /apps/web/src/services/storage/service.ts
parent4f7d401a974047d37673ee8e3840dceaaddc295c (diff)
downloadopencut-cbd1b8212370c67b34a70dccd21bd82de72fead2.tar.gz
refactor: structured track layout per scene
Diffstat (limited to 'apps/web/src/services/storage/service.ts')
-rw-r--r--apps/web/src/services/storage/service.ts22
1 files changed, 9 insertions, 13 deletions
diff --git a/apps/web/src/services/storage/service.ts b/apps/web/src/services/storage/service.ts
index 3a014894..1aea0297 100644
--- a/apps/web/src/services/storage/service.ts
+++ b/apps/web/src/services/storage/service.ts
@@ -21,7 +21,7 @@ import {
migrations,
runStorageMigrations,
} from "@/services/storage/migrations";
-import type { Bookmark, TimelineTrack, TScene } from "@/lib/timeline";
+import type { Bookmark, SceneTracks, TScene } from "@/lib/timeline";
function normalizeBookmarks({ raw }: { raw: unknown }): Bookmark[] {
if (!Array.isArray(raw)) return [];
@@ -116,18 +116,18 @@ class StorageService {
private stripAudioBuffers({
tracks,
}: {
- tracks: TimelineTrack[];
- }): TimelineTrack[] {
- return tracks.map((track) => {
- if (track.type !== "audio") return track;
- return {
+ tracks: SceneTracks;
+ }): SceneTracks {
+ return {
+ ...tracks,
+ audio: tracks.audio.map((track) => ({
...track,
elements: track.elements.map((element) => {
const { buffer: _buffer, ...rest } = element;
return rest;
}),
- };
- });
+ })),
+ };
}
async saveProject({ project }: { project: TProject }): Promise<void> {
@@ -178,11 +178,7 @@ class StorageService {
id: scene.id,
name: scene.name,
isMain: scene.isMain,
- tracks: (scene.tracks ?? []).map((track) =>
- track.type === "video"
- ? { ...track, isMain: track.isMain ?? false } // legacy: isMain was optional
- : track,
- ),
+ tracks: scene.tracks,
bookmarks: normalizeBookmarks({ raw: scene.bookmarks }),
createdAt: new Date(scene.createdAt),
updatedAt: new Date(scene.updatedAt),