diff options
| author | Maze Winther <mazewinther@gmail.com> | 2025-07-17 19:51:31 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2025-07-17 19:51:31 +0200 |
| commit | f1b216848dd9e366aa43144466ed9234bf637832 (patch) | |
| tree | d6489a9d9a4e8377de582d9a265ac690b5947fe1 /apps/web/src/stores | |
| parent | 4e5e9756c81cb8c8885be652a1dbb56b179c2e04 (diff) | |
| parent | b564f7c23933963411bb06a03a777af7647aad93 (diff) | |
| download | opencut-f1b216848dd9e366aa43144466ed9234bf637832.tar.gz | |
Merge branch 'staging'
Diffstat (limited to 'apps/web/src/stores')
| -rw-r--r-- | apps/web/src/stores/media-store.ts | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/apps/web/src/stores/media-store.ts b/apps/web/src/stores/media-store.ts index 7d4851c2..c4ee5f3e 100644 --- a/apps/web/src/stores/media-store.ts +++ b/apps/web/src/stores/media-store.ts @@ -213,7 +213,29 @@ export const useMediaStore = create<MediaStore>((set, get) => ({ try { const mediaItems = await storageService.loadAllMediaItems(projectId); - set({ mediaItems }); + + // Regenerate thumbnails for video items + const updatedMediaItems = await Promise.all( + mediaItems.map(async (item) => { + if (item.type === "video" && item.file) { + try { + const { thumbnailUrl, width, height } = await generateVideoThumbnail(item.file); + return { + ...item, + thumbnailUrl, + width: width || item.width, + height: height || item.height + }; + } catch (error) { + console.error(`Failed to regenerate thumbnail for video ${item.id}:`, error); + return item; + } + } + return item; + }) + ); + + set({ mediaItems: updatedMediaItems }); } catch (error) { console.error("Failed to load media items:", error); } finally { |
