"use client" import { useEffect } from "react" import { useParams, useRouter } from "next/navigation" import { ArrowLeft, Play } from "lucide-react" import { useSettingsStore } from "@/store/settings-store" import { usePlayerStore } from "@/store/player-store" import { Sidebar } from "@/components/app/sidebar" import { PlayerBar } from "@/components/app/player-bar" import { MobileNav } from "@/components/app/mobile-nav" import { TrackList } from "@/components/app/track-list" import { LoadingSpinner } from "@/components/app/loading-spinner" import { EmptyState } from "@/components/app/empty-state" import { Button } from "@/components/ui/button" import { useAlbum } from "@/hooks/use-album" import { albumToPlayerTracks } from "@/lib/api" import { formatDate } from "@/lib/utils" export default function AlbumPage() { const params = useParams() const router = useRouter() const theme = useSettingsStore((state) => state.theme) const { loadAndPlayQueue } = usePlayerStore((state) => state.actions) const albumId = params.id as string const { album, isLoading, error } = useAlbum(albumId) useEffect(() => { if (theme !== "custom") { document.documentElement.setAttribute("data-theme", theme) } else { document.documentElement.removeAttribute("data-theme") } document.documentElement.classList.add("dark") }, [theme]) const handlePlayAlbum = () => { if (album) { const tracks = albumToPlayerTracks(album) loadAndPlayQueue(tracks, 0) } } const handleArtistClick = () => { if (album) { router.push(`/artist/${album.artist.id}`) } } if (isLoading) { return (
Album