100 Commits

Author SHA1 Message Date
Geert Rademakes
060d339e78 feat: Navigate to homepage after successful database reset - Add navigation to '/' after database reset completes - Shows welcome modal and provides fresh start experience - Improves UX flow after clearing library data 2025-08-06 11:21:19 +02:00
Geert Rademakes
966240b0d1 perf: Streamline playlist switching flow for faster, cleaner transitions - Clear all state immediately (songs, totalSongs, totalDuration) on playlist switch - Combine switching and loading states into single spinner with dynamic text - Remove duplicate switching indicators to prevent UI flicker - Reset switching state when loading starts for immediate transition - Eliminates confusing flow: switching → old data → 0 of X → loading → new data - Now shows: switching → loading → new data (much cleaner) 2025-08-06 11:18:09 +02:00
Geert Rademakes
90bcd10ed9 feat: Reset song count indicator when switching playlists - Show '0 of 0 songs • Switching playlist...' during playlist switch - Provides consistent visual feedback across all UI elements - Makes playlist switching feel even more responsive and clear 2025-08-06 11:14:16 +02:00
Geert Rademakes
491235af29 feat: Add immediate visual feedback for playlist switching - Clear song list immediately when switching playlists for instant feedback - Add 'Switching playlist...' loading indicator with spinner - Set switching state immediately on playlist selection - Reset switching state when new songs are loaded - Makes playlist switching feel much more responsive and clear 2025-08-06 11:12:58 +02:00
Geert Rademakes
4c3b3e31d4 perf: Additional optimizations to reduce React violations and improve performance - Add early return for empty songs array in totalDuration calculation - Add null check for getAllPlaylists to prevent unnecessary processing - Use requestAnimationFrame in Intersection Observer for better performance - Should reduce 600-1400ms message handler violations 2025-08-06 11:10:28 +02:00
Geert Rademakes
770c606561 perf: Aggressive optimization for playlist switching to make it snappy - Add React.startTransition to batch state updates in usePaginatedSongs - Optimize playlist selection handler with immediate navigation - Memoize click handlers in PlaylistItem to prevent recreation - Use replace navigation to avoid history stack delays - Should dramatically reduce 600+ms playlist switching delay 2025-08-06 10:59:16 +02:00
Geert Rademakes
c9541cffee perf: Optimize song selection to fix 711ms click handler delay - Memoize formatted duration in SongItem to prevent recalculation - Remove handleSongSelect from songItems useMemo dependencies - Optimize SongItem component to prevent unnecessary re-renders - Should improve song selection responsiveness 2025-08-06 10:57:25 +02:00
Geert Rademakes
e2ae3bd6d8 cleanup: Remove debugging console logs - Remove timestamp logging from playlist selection and change detection - Remove loadPage call logging - Clean up temporary debugging code 2025-08-06 10:54:30 +02:00
Geert Rademakes
510c6e1026 perf: Optimize playlist manager to fix 727ms click handler delay - Memoize button styles to prevent object recreation on every render - Wrap PlaylistItem in React.memo to prevent unnecessary re-renders - Fixes React violation 'click' handler took 727ms - Should dramatically improve playlist switching responsiveness 2025-08-06 10:52:11 +02:00
Geert Rademakes
586b3634b5 debug: Add timestamps to console logs for better timing analysis - Add ISO timestamps to playlist selection and change detection logs - Add timestamp to loadPage function calls - Helps identify exact timing of playlist switching delays 2025-08-06 10:51:08 +02:00
Geert Rademakes
57c1047357 debug: Add console logs to investigate playlist switching delay - Add logging to track playlist selection and change detection - Remove isInitialLoad condition that might block playlist changes - Optimize initial load to prevent conflicts with playlist switching - Temporary debugging to identify timing issues 2025-08-06 10:49:31 +02:00
Geert Rademakes
9268a4635f perf: Remove unnecessary delays in playlist switching and infinite scroll - Remove setTimeout delay in playlist change handler - Reduce infinite scroll trigger delay from 1000ms to 100ms - Improve responsiveness when switching playlists and scrolling - Fixes 1-second delay between URL change and actual loading 2025-08-06 10:47:37 +02:00
Geert Rademakes
e8bb2a4326 fix: Restore playlist switching functionality - Add previousPlaylistRef to properly detect playlist changes - Fix playlist change detection logic that was broken by ref updates - Ensure playlist switching works while maintaining infinite scroll fix 2025-08-06 10:43:18 +02:00
Geert Rademakes
08de2afa0e fix: Prevent infinite scroll from loading previous playlist songs - Add refs to store current playlist and search query values - Fix stale closure issue in loadPage function - Ensure infinite scroll uses current playlist, not cached values - Fixes race condition when switching playlists and scrolling 2025-08-06 10:39:51 +02:00
Geert Rademakes
535dc16d2c fix: Prevent welcome modal from showing on initial page load - Change welcome modal to not open by default - Only show welcome modal after confirming database is empty - Move database initialization check after useDisclosure hook - Fixes premature welcome modal display on app startup 2025-08-06 10:35:17 +02:00
Geert Rademakes
743ed6a54e fix: Prevent welcome modal from showing during playlist switches - Add isDatabaseInitialized state to track actual database status - Check for songs and playlists to determine if database is initialized - Only show welcome modal when database is truly empty - Fixes issue where modal appeared when switching playlists 2025-08-06 10:33:16 +02:00
Geert Rademakes
02ae12294c feat: Show total playlist duration instead of loaded songs duration - Add totalDuration calculation in backend playlist endpoint - Update frontend to display total playlist duration - Duration now shows entire playlist length, not just loaded songs - Prevents duration from changing when scrolling through songs 2025-08-06 10:30:02 +02:00
Geert Rademakes
54bffbc25d feat: Make playlist switching less intrusive - Remove full loading screen for playlist switches - Only show full loading for initial XML parsing - Use subtle spinner in song list area for playlist loading - Improve UX by keeping interface responsive during navigation 2025-08-06 10:24:04 +02:00
Geert Rademakes
65120ff654 revert: Change indentation back to 10px per level - Revert from 16px to 10px for better visual balance - Keep visual indicators and padding improvements 2025-08-06 10:22:14 +02:00
Geert Rademakes
50f29b900e feat: Move 'Add Playlist' and 'Add Folder' buttons to the top - Position buttons right after 'All Songs' for better accessibility - Add proper spacing with mb={2} for visual separation - Improve UX by making action buttons more prominent 2025-08-06 10:21:49 +02:00
Geert Rademakes
5fb878a0b0 feat: Improve playlist hierarchy visualization - Increase indentation for nested playlists (16px per level) - Add visual indicators (gray bars) for nested items - Add extra padding for better visual separation - Make folder structure more clearly visible 2025-08-06 10:21:12 +02:00
Geert Rademakes
4f16c859db fix: Prevent infinite scroll refresh by stabilizing intersection observer - Add trigger prevention mechanism to avoid multiple API calls - Use refs to store current values and avoid stale closures - Remove observer dependencies to prevent recreation - Add proper timeout cleanup to prevent memory leaks 2025-08-06 10:13:21 +02:00
Geert Rademakes
2e32a3c3b6 fix: Make playlist folders start collapsed by default - Change default state from expanded to collapsed for better UX 2025-08-06 10:05:32 +02:00
Geert Rademakes
7fb8614130 feat: Major performance optimizations - Add React.memo, useMemo, and useCallback to prevent unnecessary re-renders - Implement request cancellation with AbortController to prevent memory leaks - Add debounced search to reduce API calls - Optimize song selection and playlist switching performance - Fix browser crashes and memory leaks - Add proper cleanup functions 2025-08-06 10:03:26 +02:00
Geert Rademakes
e98fdf50cb bigger payload 2025-04-29 09:52:45 +02:00
Geert Rademakes
506569b038 UI fixes 2025-04-25 11:30:47 +02:00
Geert Rademakes
9116b785ea bitrate logic updates 2025-04-25 11:04:13 +02:00
Geert Rademakes
f3d067ab16 UX fix 2025-04-25 10:46:39 +02:00
Geert Rademakes
40c75d479a Nice onboarding flow & reset database function 2025-04-25 10:42:45 +02:00
Geert Rademakes
db4408b953 Added config page! 2025-04-25 10:29:24 +02:00
Geert Rademakes
5c1cf64c4c Routing fixes 2025-04-25 10:01:45 +02:00
Geert Rademakes
ab531462c2 Some extra ui improvements 2025-04-25 09:38:53 +02:00
Geert Rademakes
7e1f4e1cd4 UI fixes! 2025-04-25 09:21:38 +02:00
Geert Rademakes
1a3beb7e6f Details are working again 2025-04-24 23:50:54 +02:00
Geert Rademakes
9e32aa0a99 Folders are working aswell!! 2025-04-24 23:48:23 +02:00
Geert Rademakes
3a13c24301 Folders working! 2025-04-24 23:45:14 +02:00
Geert Rademakes
f82cb84397 Draggable playlist sidebar 2025-04-24 23:11:46 +02:00
Geert Rademakes
83fe6994b8 Better UI! 2025-04-24 23:11:07 +02:00
Geert Rademakes
7e08b0e567 Delete playlist added 2025-04-24 22:51:21 +02:00
Geert Rademakes
8daf0cd526 url based nav part 2 2025-04-24 22:12:01 +02:00
Geert Rademakes
ea2942edc1 url based navigation 2025-04-24 22:11:51 +02:00
Geert Rademakes
35da4f83ce With amazing details screen on the sidebar now! 2025-04-24 19:55:10 +02:00
Geert Rademakes
ff371aa855 Update to the manager 2025-04-24 16:14:52 +02:00
Geert Rademakes
5c62f9d147 UI improvements! 2025-04-24 16:08:06 +02:00
Geert Rademakes
3e8141aeba Added docker compose deployments 2025-04-24 15:46:10 +02:00
Geert Rademakes
901c78990b frontend AND backend bro!! 2025-04-24 15:28:22 +02:00
Geert Rademakes
32823fd40d Now prettier XML 2025-03-12 12:59:52 +01:00
Geert Rademakes
23fa46e223 Working v0.01 with ...
Import, add song to playlist from collection and export
2025-03-12 00:39:05 +01:00
Geert Rademakes
dde28bc286 Working version that actually exports!! 2025-03-12 00:32:29 +01:00
Geert Rademakes
503938230f first commit 2025-03-11 23:45:16 +01:00