diff options
| author | Maze <167211895+mazeincoding@users.noreply.github.com> | 2025-07-17 13:06:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-17 13:06:06 +0200 |
| commit | 5a7a089f0ea5183ebddc10fc187744bd4a8d8efc (patch) | |
| tree | 7696766b86102114e36ccce2aece71706a93a31f /apps/web/src/stores/media-store.ts | |
| parent | 9bf5ce399c98911338f47c89c31992e7e91a848d (diff) | |
| parent | 36df8f2afe7952d7c23e8534375a883b32159ed6 (diff) | |
| download | opencut-5a7a089f0ea5183ebddc10fc187744bd4a8d8efc.tar.gz | |
Merge pull request #323 from khanguyen74/feature/regenerate-media-items-thumbnail
fix: regenerate video thumbnails when a project is loaded
Diffstat (limited to 'apps/web/src/stores/media-store.ts')
| -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 { |
