import { motion } from 'framer-motion'; import { useState, useEffect } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { ArrowLeft, Play } from 'lucide-react'; // 모바일 앨범 상세 페이지 function MobileAlbumDetail() { const { name } = useParams(); const navigate = useNavigate(); const [album, setAlbum] = useState(null); const [tracks, setTracks] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { // 앨범 정보 로드 fetch('/api/albums') .then(res => res.json()) .then(data => { const found = data.find(a => a.folder_name === name); if (found) { setAlbum(found); // 트랙 정보 로드 fetch(`/api/albums/${found.id}/tracks`) .then(res => res.json()) .then(setTracks) .catch(console.error); } setLoading(false); }) .catch(console.error); }, [name]); if (loading) { return (
); } if (!album) { return (

앨범을 찾을 수 없습니다

); } return (
{/* 헤더 */}
{album.title}
{/* 앨범 정보 */}
{album.cover_medium_url && ( {album.title} )}

{album.title}

{album.album_type}

{album.release_date}

{/* 트랙 리스트 */} {tracks.length > 0 && (

수록곡

{tracks.map((track, index) => ( {track.track_number}

{track.title} {track.is_title_track && ( 타이틀 )}

{track.duration}

{track.music_video_url && ( )}
))}
)} {/* 설명 */} {album.description && (

소개

{album.description}

)}
); } export default MobileAlbumDetail;