import { useParams, useNavigate } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { motion } from 'framer-motion'; import { ArrowLeft, Calendar, MapPin, Clock } from 'lucide-react'; import { fetchApi } from '../../../api'; // 한글 이름 → 영어 이름 매핑 const memberEnglishName = { '송하영': 'HAYOUNG', '박지원': 'JIWON', '이채영': 'CHAEYOUNG', '이나경': 'NAKYUNG', '백지헌': 'JIHEON', '장규리': 'GYURI', '이새롬': 'SAEROM', '노지선': 'JISUN', '이서연': 'SEOYEON', }; function Birthday() { const { memberName, year } = useParams(); const navigate = useNavigate(); // URL 디코딩 const decodedMemberName = decodeURIComponent(memberName || ''); const englishName = memberEnglishName[decodedMemberName]; // 멤버 정보 조회 const { data: member, isLoading: memberLoading, error } = useQuery({ queryKey: ['member', decodedMemberName], queryFn: () => fetchApi(`/api/members/${encodeURIComponent(decodedMemberName)}`), enabled: !!decodedMemberName, }); // 해당 년도 생일카페 정보 조회 (나중에 구현) // const { data: cafes } = useQuery({ // queryKey: ['birthdayCafes', decodedMemberName, year], // queryFn: () => fetchApi(`/api/birthday-cafes?member=${encodeURIComponent(decodedMemberName)}&year=${year}`), // }); if (!decodedMemberName || error) { return (

멤버를 찾을 수 없습니다

); } if (memberLoading) { return (
); } // 생일 계산 const birthDate = member?.birth_date ? new Date(member.birth_date) : null; const birthdayThisYear = birthDate ? new Date(parseInt(year), birthDate.getMonth(), birthDate.getDate()) : null; return (
{/* 뒤로가기 */} {/* 헤더 카드 */} {/* 배경 장식 */}
🎉
🎈
{/* 멤버 사진 */} {member?.image_url && (
{member.name}
)} {/* 내용 */}
🎂

HAPPY {englishName} DAY

{year}년 {birthdayThisYear?.getMonth() + 1}월 {birthdayThisYear?.getDate()}일

{/* 년도 뱃지 */}
YEAR
{year}
{/* 생일카페 섹션 */}

생일카페

{/* 준비 중 메시지 */}
🎁

{year}년 {decodedMemberName} 생일카페 정보가 준비 중입니다

생일카페 정보가 등록되면 이곳에 표시됩니다

{/* 생일카페 목록 (나중에 구현) */} {/* {cafes?.length > 0 ? (
{cafes.map((cafe) => (

{cafe.name}

{cafe.start_date} ~ {cafe.end_date}
{cafe.open_time} - {cafe.close_time}
{cafe.location}
))}
) : null} */}
{/* 다른 년도 보기 (나중에 구현) */} {/* {[2023, 2024, 2025, 2026].map((y) => ( ))} */}
); } export default Birthday;