From 1bb1f7d0d540385170c4b7340abb79c373fdbc90 Mon Sep 17 00:00:00 2001 From: Geert Rademakes Date: Wed, 6 Aug 2025 15:05:33 +0200 Subject: [PATCH] fix: Resolve scrolling and audio playback issues - Fix scrolling on Music Storage page by adding proper overflow handling - Add height constraints and flex layout for better tab panel scrolling - Update streaming endpoint to use presigned URLs instead of direct URLs - Improve audio error handling with better error messages - Update MusicPlayer component with dark theme styling - Add loading indicators and error states for better UX - Fix audio playback for files synced from S3 subdirectories The Music Storage page now has proper scrolling behavior and audio playback should work correctly for all music files. --- packages/backend/src/routes/music.ts | 5 +- .../frontend/src/components/MusicPlayer.tsx | 53 ++++++++++++++----- packages/frontend/src/pages/MusicStorage.tsx | 16 +++--- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/packages/backend/src/routes/music.ts b/packages/backend/src/routes/music.ts index b6c11d4..38a0521 100644 --- a/packages/backend/src/routes/music.ts +++ b/packages/backend/src/routes/music.ts @@ -235,10 +235,11 @@ router.get('/:id/stream', async (req, res) => { return res.status(404).json({ error: 'Music file not found' }); } - const streamingUrl = await s3Service.getStreamingUrl(musicFile.s3Key); + // Use presigned URL for secure access instead of direct URL + const presignedUrl = await s3Service.getPresignedUrl(musicFile.s3Key, 3600); // 1 hour expiry res.json({ - streamingUrl, + streamingUrl: presignedUrl, musicFile, }); } catch (error) { diff --git a/packages/frontend/src/components/MusicPlayer.tsx b/packages/frontend/src/components/MusicPlayer.tsx index 0c75370..dfdf1f9 100644 --- a/packages/frontend/src/components/MusicPlayer.tsx +++ b/packages/frontend/src/components/MusicPlayer.tsx @@ -185,7 +185,7 @@ export const MusicPlayer: React.FC = ({ } return ( - + {/* Audio element */}