import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { motion } from 'framer-motion'; import { Calendar, Music } from 'lucide-react'; function Discography() { const navigate = useNavigate(); const [albums, setAlbums] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetch('/api/albums') .then(res => res.json()) .then(data => { setAlbums(data); setLoading(false); }) .catch(error => { console.error('앨범 데이터 로드 오류:', error); setLoading(false); }); }, []); // 날짜 포맷팅 const formatDate = (dateStr) => { if (!dateStr) return ''; const date = new Date(dateStr); return `${date.getFullYear()}.${String(date.getMonth() + 1).padStart(2, '0')}.${String(date.getDate()).padStart(2, '0')}`; }; // 타이틀곡 찾기 const getTitleTrack = (tracks) => { if (!tracks || tracks.length === 0) return ''; const titleTrack = tracks.find(t => t.is_title_track); return titleTrack ? titleTrack.title : tracks[0].title; }; // 앨범 타입별 개수 계산 const albumStats = { 정규: albums.filter(a => a.album_type === '정규').length, 미니: albums.filter(a => a.album_type === '미니').length, 싱글: albums.filter(a => a.album_type === '싱글').length, 총: albums.length }; // 앨범 클릭 핸들러 const handleAlbumClick = (albumId) => { navigate(`/discography/${albumId}`); }; if (loading) { return (
{albumStats.정규}
정규 앨범
{albumStats.미니}
미니 앨범
{albumStats.싱글}
싱글 앨범
{albumStats.총}
총 앨범
{album.tracks?.length || 0}곡 수록
{getTitleTrack(album.tracks)}