import { useParams, Link } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { motion } from 'framer-motion'; import { ChevronRight } from 'lucide-react'; import { fetchApi } from '@/api/client'; import { MEMBER_ENGLISH_NAMES } from '@/constants'; /** * PC 생일 페이지 */ function PCBirthday() { const { memberName, year } = useParams(); // URL 디코딩 const decodedMemberName = decodeURIComponent(memberName || ''); const englishName = MEMBER_ENGLISH_NAMES[decodedMemberName]; // 멤버 정보 조회 const { data: member, isLoading: memberLoading, error, } = useQuery({ queryKey: ['member', decodedMemberName], queryFn: () => fetchApi(`/members/${encodeURIComponent(decodedMemberName)}`), enabled: !!decodedMemberName, }); 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 (
{/* 네비게이션 */}
일정 HAPPY {englishName} DAY
{/* 헤더 카드 */} {/* 배경 장식 */}
🎉
🎈
{/* 멤버 사진 */} {member?.image_url && (
{member.name}
)} {/* 내용 */}
🎂

HAPPY {englishName} DAY

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

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

생일카페

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

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

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

); } export default PCBirthday;