import { useState, useEffect } from 'react'; import { motion } from 'framer-motion'; import { Link } from 'react-router-dom'; import { Calendar, ArrowRight, Clock, Link2, Tag } from 'lucide-react'; import { getTodayKST } from '../../../utils/date'; import { getMembers } from '../../../api/public/members'; import { getUpcomingSchedules } from '../../../api/public/schedules'; function Home() { const [members, setMembers] = useState([]); const [upcomingSchedules, setUpcomingSchedules] = useState([]); useEffect(() => { // 멤버 데이터 로드 getMembers() .then(data => setMembers(data)) .catch(error => console.error('멤버 데이터 로드 오류:', error)); // 다가오는 일정 로드 (오늘 이후 3개) getUpcomingSchedules(3) .then(data => setUpcomingSchedules(data)) .catch(error => console.error('일정 데이터 로드 오류:', error)); }, []); return (
{/* 히어로 섹션 */}

fromis_9

프로미스나인

인사드리겠습니다. 둘, 셋!
이제는 약속해 소중히 간직해,
당신의 아이돌로 성장하겠습니다!

멤버 보기
{/* 장식 */}
{/* 그룹 통계 섹션 */}

2018.01.24

데뷔일

D+{(Math.floor((new Date() - new Date('2018-01-24')) / (1000 * 60 * 60 * 24)) + 1).toLocaleString()}

D+Day

5

멤버 수

flover

팬덤명

{/* 멤버 미리보기 */}

멤버

전체보기
{members.filter(m => !m.is_former).map((member, index) => (
{member.name}

{member.name}

{member.position?.split(',')[0]}

))}
{/* 일정 미리보기 */}

다가오는 일정

전체보기
{upcomingSchedules.length === 0 ? (

예정된 일정이 없습니다

) : (
{upcomingSchedules.map((schedule, index) => { const scheduleDate = new Date(schedule.date); const day = scheduleDate.getDate(); const weekdays = ['일', '월', '화', '수', '목', '금', '토']; const weekday = weekdays[scheduleDate.getDay()]; // 멤버 처리 const memberList = schedule.member_names ? schedule.member_names.split(',') : []; const displayMembers = memberList.length >= 5 ? ['프로미스나인'] : memberList; return ( {/* 날짜 영역 - primary 색상 고정 */}
{day} {weekday}
{/* 내용 영역 */}

{schedule.title}

{schedule.time && (
{schedule.time.slice(0, 5)}
)} {schedule.category_name && (
{schedule.category_name}
)} {schedule.source_name && (
{schedule.source_name}
)}
{/* 멤버 태그 */} {displayMembers.length > 0 && (
{displayMembers.map((name, i) => ( {name.trim()} ))}
)}
); })}
)}
); } export default Home;