import { useState, useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { FiHome, FiBarChart2, FiUsers, FiList, FiCheckCircle, FiActivity, FiSettings } from 'react-icons/fi'; import Layout from '../components/Layout.jsx'; import SidebarNavItem from '../components/layout/SidebarNavItem.jsx'; import usePageState from '../hooks/usePageState.js'; import { ADMIN_PAGES } from '../constants/pages.js'; import { ADMIN_KEYS } from '../constants/storageKeys.js'; import OverviewPage from './admin/OverviewPage.jsx'; import DepartmentsPage from './admin/DepartmentsPage.jsx'; import UsersPage from './admin/UsersPage.jsx'; import AdminProjectsPage from './admin/AdminProjectsPage.jsx'; import AddDepartmentPage from './admin/AddDepartmentPage.jsx'; import AddUserPage from './admin/AddUserPage.jsx'; import AddProjectPage from './admin/AddProjectPage.jsx'; import AdminLogsPage from './admin/AdminLogsPage.jsx'; import ConsoleReviewListPage from './console/ConsoleReviewListPage.jsx'; import ConsoleReviewDetailPage from './console/ConsoleReviewDetailPage.jsx'; import ModelConfigsPage from './admin/ModelConfigsPage.jsx'; import AddModelConfigPage from './admin/AddModelConfigPage.jsx'; function AdminPage() { const location = useLocation(); const navigate = useNavigate(); const { currentPage, setCurrentPage } = usePageState({ storageKey: ADMIN_KEYS.CURRENT_PAGE, defaultPage: 'overview', pageTitles: ADMIN_PAGES, }); const [editData, setEditData] = useState(null); const [reviewType, setReviewType] = useState(null); const [reviewId, setReviewId] = useState(null); const navigateTo = (page, data) => { setEditData(data || null); setCurrentPage(page); }; const handleReviewClick = (type, id) => { setReviewType(type); setReviewId(id); navigateTo('reviewDetail'); }; const handleReviewBack = () => { setReviewType(null); setReviewId(null); navigateTo('reviewList'); }; const renderPage = () => { switch (currentPage) { case 'overview': return ; case 'departments': return navigateTo('addDepartment')} onEdit={(dept) => navigateTo('addDepartment', dept)} />; case 'users': return navigateTo('addUser')} onEdit={(user) => navigateTo('addUser', user)} />; case 'projects': return navigateTo('addProject')} onEdit={(project) => navigateTo('addProject', project)} />; case 'adminLogs': return ; case 'reviewList': return ; case 'reviewDetail': return ; case 'addDepartment': return navigateTo('departments')} editData={editData} />; case 'addUser': return navigateTo('users')} editData={editData} />; case 'addProject': return navigateTo('projects')} editData={editData} />; case 'modelConfigs': return navigateTo('addModelConfig')} onEdit={(config) => navigateTo('addModelConfig', config)} />; case 'addModelConfig': return navigateTo('modelConfigs')} editData={editData} />; default: return
Page not found
; } }; const sidebar = ( <> ); return ( {renderPage()} ); } export default AdminPage;