Fixes
- Improved error handling and strengthened type safety in the usePlayerWebSocket hook.
- Fixed visual bug where the wrong track appeared to be removed from the queue.
- Fixed issue where Spotlight Search would not open on the /stats page.
- Corrected missing Spotify environment variables.
- Fixed site name and description not loading properly from environment variables.
- Fixed issue where skipping a song would break the player.
- Fixed bug where a song continued showing as “playing” even after it had stopped.
Features
- Implemented a WebSocket hook for player state management.
- Updated the NowPlaying component to handle guildId correctly.
- Added lyrics display as a sooner component.
- Added user-based statistics on the /stats page.
- Added premium-only access restriction to the dashboard.
Refactors
- Re-arranged card layout on the stats page for better UI clarity.
- Removed usage of browser local.cache in favor of an API endpoint for fetching recently played items.
Security
- Resolved React Server Components CVE vulnerabilities.
New Features
- Stats Page: Now shows both user-based and guild-based statistics.
- Playlist Enhancements:
- Added create, edit & delete confirmation for playlists from the sidebar.
- Playlist cover image artwork support.
- Player Updates:
- Player control now stretches full width.
- Added lyrics placeholder button. (Will use Genius API in future)
- Added option to remove a song from the queue.
- “Now Playing” sidebar refactored with a Clear Queue button.
- Settings Page: Introduced a new settings page with a language selector.
- Search Enhancements:
- Spotlight search added for improved navigation.
- Guild search bar and trigger for spotlight search added.
- Global search/explore functionality added on guild pages.
- Explore Page: Displays the top 50 trending songs.
- Guild Sidebar Enhancements:
- Added guild selector to the sidebar.
- Create playlist button in sidebar.
- Expand/collapse toggle for sidebar.
- Permissions: Only DJs can access the dashboard now (toggle-able).
- Filter Component: Added with an amount controller.
- UI Polish: Added minor UI enhancements: Sooner Component.
Fixes & Improvements
- Fixed search bar not working on guild.id/stats page.
- Fixed track duration display issue on the playlist page.
- Resolved playlist song not showing correctly as "Now Playing" on guilds page.
- Sidebar now displays recently played songs (from browser cache) instead of upcoming ones.
- Sidebar now respects full height and improved active state visuals.
- Only manageable guilds are now shown in the guild list.
- Fixed issue with newly selected guild not loading properly.
- AppLayout refactored for better code reuse and maintainability.
Added
- Play track functionality now sends a POST request to
/v1/players/playwithguildId,userId, and the track title when the play button is clicked on both the search and playlist pages.- Centralized the play track API logic for easier maintenance and reuse.
Changed
- Refactored the play button logic in the search and playlist pages to use the new centralized play track method instead of duplicating fetch logic.
- Improved error handling for missing user ID when attempting to play a track.
