Geert Rademakes
9249a5a4a7
feat(reorder): support dragging multiple selected songs to a specific position and to end (block move)
2025-08-08 14:55:06 +02:00
Geert Rademakes
e2d6d55433
chore(reorder-debug): add server/client logs for move and playlist order slice to diagnose ordering issue
2025-08-08 14:37:45 +02:00
Geert Rademakes
8136bbb959
fix(reorder): backend move endpoint and frontend use precise move to persist order reliably; refresh after move
2025-08-08 14:30:58 +02:00
Geert Rademakes
61d4ca16de
feat(playlists): track custom order in separate 'order' array; reading API honors 'order' while preserving 'tracks'
2025-08-08 14:25:50 +02:00
Geert Rademakes
5a396d774e
fix(playlists): markModified on children/tracks to persist order; API response confirms update
2025-08-08 14:20:48 +02:00
Geert Rademakes
5a21243f5b
chore(reorder): add client debug logs; refresh playlist after reorder; backend keeps missing ids at end when reordering
2025-08-08 14:15:55 +02:00
Geert Rademakes
32d545959d
feat(playlists): support custom per-playlist track order; backend /playlists/reorder; playlist songs endpoint honors order; frontend intra-playlist row DnD with reorder persist
2025-08-08 14:03:03 +02:00
Geert Rademakes
dc11487a9f
fix(dnd): bubble drop handler through nested folders; add debug log on handler invoke; harden /playlists/batch insertMany
2025-08-08 13:39:39 +02:00
Geert Rademakes
b436d1dabc
feat: implement immediate song document updates for perfect sync resilience
...
- Remove end-of-job cleanup phases from S3 sync and song matching jobs
- Update Song documents immediately after each successful match in both Phase 1 and Phase 2
- Ensure hasS3File flag is set to true immediately for each matched song
- Enable play buttons to appear instantly as songs are processed
- Make system perfectly resilient to interruptions - no orphaned files
- Allow seamless resume capability for long-running sync jobs
- Provide real-time availability of matched songs without waiting for job completion
- Maintain system consistency regardless of when sync gets interrupted
2025-08-07 23:36:30 +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
40c75d479a
Nice onboarding flow & reset database function
2025-04-25 10:42:45 +02:00
Geert Rademakes
3a13c24301
Folders working!
2025-04-24 23:45:14 +02:00
Geert Rademakes
901c78990b
frontend AND backend bro!!
2025-04-24 15:28:22 +02:00