diff options
| author | Kha Nguyen <hi@khanguyen.com> | 2025-07-16 16:45:36 -0500 |
|---|---|---|
| committer | Kha Nguyen <hi@khanguyen.com> | 2025-07-16 16:49:08 -0500 |
| commit | 9f3ba9905d6ed2faacfac05deb9ab344f4aadaaa (patch) | |
| tree | f86416eceb5c27838dfdacbae5049bf552024b80 /apps/web/src | |
| parent | 55978c30fa8629840995922e76a98ad4b2045b80 (diff) | |
| download | opencut-9f3ba9905d6ed2faacfac05deb9ab344f4aadaaa.tar.gz | |
fix: regenerate video thumbnails when loading project
Diffstat (limited to 'apps/web/src')
| -rw-r--r-- | apps/web/src/stores/media-store.ts | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/apps/web/src/stores/media-store.ts b/apps/web/src/stores/media-store.ts index 7d4851c2..8af523ef 100644 --- a/apps/web/src/stores/media-store.ts +++ b/apps/web/src/stores/media-store.ts @@ -213,7 +213,28 @@ 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 { |
