import { motion } from 'framer-motion';
import { Instagram, Calendar } from 'lucide-react';
import { useIsMobile, useMembers } from '@/hooks';
import { Loading } from '@/components';
import { formatDate } from '@/utils';
/**
* 멤버 카드 컴포넌트 (PC)
*/
function MemberCard({ member, isFormer = false, delay = 0 }) {
return (
{/* 이미지 */}
{/* 정보 */}
{member.name}
{formatDate(member.birth_date, 'YYYY.MM.DD')}
{/* 인스타그램 링크 */}
{member.instagram && !isFormer && (
Instagram
)}
{/* 호버 효과 - 컬러 바 */}
);
}
/**
* 멤버 페이지 (PC/Mobile 통합)
*/
function Members() {
const isMobile = useIsMobile();
const { data: members = [], isLoading } = useMembers();
const currentMembers = members.filter((m) => !m.is_former);
const formerMembers = members.filter((m) => m.is_former);
if (isLoading) {
return (
);
}
// 모바일 레이아웃
if (isMobile) {
return (
{/* 현재 멤버 */}
{currentMembers.map((member) => (
{member.name}
{formatDate(member.birth_date, 'YYYY.MM.DD')}
))}
{/* 전 멤버 */}
{formerMembers.length > 0 && (
<>
전 멤버
{formerMembers.map((member) => (
{member.name}
{formatDate(member.birth_date, 'YYYY.MM.DD')}
))}
>
)}
);
}
// PC 레이아웃
return (
{/* 헤더 */}
멤버
프로미스나인의 멤버를 소개합니다
{/* 현재 멤버 그리드 */}
{currentMembers.map((member, index) => (
))}
{/* 전 멤버 섹션 */}
{formerMembers.length > 0 && (
전 멤버
{formerMembers.map((member, index) => (
))}
)}
);
}
export default Members;