import { useState, useEffect } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { motion } from 'framer-motion'; import { Disc3, Calendar, Users, LogOut, Home, ChevronRight } from 'lucide-react'; function AdminDashboard() { const navigate = useNavigate(); const [user, setUser] = useState(null); useEffect(() => { // 로그인 상태 확인 const token = localStorage.getItem('adminToken'); const userData = localStorage.getItem('adminUser'); if (!token || !userData) { navigate('/admin'); return; } setUser(JSON.parse(userData)); // 토큰 유효성 검증 fetch('/api/admin/verify', { headers: { Authorization: `Bearer ${token}` } }) .then(res => { if (!res.ok) throw new Error('Invalid token'); return res.json(); }) .catch(() => { localStorage.removeItem('adminToken'); localStorage.removeItem('adminUser'); navigate('/admin'); }); }, [navigate]); const handleLogout = () => { localStorage.removeItem('adminToken'); localStorage.removeItem('adminUser'); navigate('/admin'); }; // 메뉴 아이템 const menuItems = [ { icon: Users, label: '멤버 관리', description: '멤버 정보 및 프로필 관리', path: '/admin/members', color: 'bg-primary' }, { icon: Disc3, label: '앨범 관리', description: '앨범, 트랙, 사진 업로드 및 관리', path: '/admin/albums', color: 'bg-purple-500' }, { icon: Calendar, label: '일정 관리', description: '일정 추가 및 관리', path: '/admin/schedule', color: 'bg-blue-500' }, ]; return (
{/* 헤더 */}
fromis_9 Admin
안녕하세요, {user?.username}
{/* 메인 콘텐츠 */}
{/* 브레드크럼 */}
관리자 대시보드
{/* 타이틀 */}

관리자 대시보드

fromis_9 팬사이트를 관리하세요

{/* 메뉴 그리드 */}
{menuItems.map((item, index) => (

{item.label}

{item.description}

))}
{/* 빠른 통계 */}

빠른 통계

-

총 앨범

-

총 사진

-

총 일정

5

멤버

); } export default AdminDashboard;