feat: implement library page with recent albums and navigation links

This commit is contained in:
2025-07-12 18:20:56 +00:00
committed by GitHub
parent 3eb16a7b7a
commit 437640c9a9
3 changed files with 233 additions and 10 deletions

View File

@@ -350,6 +350,7 @@ export const AudioPlayer: React.FC = () => {
}, [currentTrack, isPlaying, isClient, playPreviousTrack, playNextTrack, onTrackPlay, onTrackPause]);
const handleProgressClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
e.stopPropagation(); // Prevent triggering fullscreen
if (audioCurrent && currentTrack) {
const rect = e.currentTarget.getBoundingClientRect();
const clickX = e.clientX - rect.left;
@@ -499,15 +500,15 @@ export const AudioPlayer: React.FC = () => {
</div>
</div>
</div>
{/* Full Screen Player for mobile */}
<FullScreenPlayer
isOpen={isFullScreen}
onClose={() => setIsFullScreen(false)}
onOpenQueue={handleOpenQueue}
/>
</div>
{/* Full Screen Player for mobile - rendered outside mini player */}
<FullScreenPlayer
isOpen={isFullScreen}
onClose={() => setIsFullScreen(false)}
onOpenQueue={handleOpenQueue}
/>
{/* Single audio element - shared across all UI states */}
<audio ref={audioRef} hidden />
<audio ref={preloadAudioRef} hidden preload="metadata" />

View File

@@ -13,9 +13,7 @@ interface NavItem {
const navigationItems: NavItem[] = [
{ href: '/', label: 'Home', icon: Home },
{ href: '/search', label: 'Search', icon: Search },
{ href: '/library/albums', label: 'Albums', icon: Disc },
{ href: '/library/artists', label: 'Artists', icon: Users },
{ href: '/favorites', label: 'Favorites', icon: Heart },
{ href: '/library', label: 'Library', icon: Music },
{ href: '/queue', label: 'Queue', icon: List },
];