import { useEffect } from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { ConfigProvider, App as AntApp, Spin } from 'antd'; import zhCN from 'antd/locale/zh_CN'; import AdminLayout from './pages/AdminLayout'; import AdminLoginPage from './pages/AdminLoginPage'; import AdminDashboard from './pages/AdminDashboard'; import AdminUsers from './pages/AdminUsers'; import AdminModels from './pages/AdminModels'; import AdminSettings from './pages/AdminSettings'; import AdminNotificationManager from './pages/AdminNotificationManager'; import AdminCreditRecords from './pages/AdminCreditRecords'; import AdminPaymentConfig from './pages/AdminPaymentConfig'; import AdminPaymentStats from './pages/AdminPaymentStats'; import AdminIndustries from './pages/AdminIndustries'; import AdminVideoEngines from './pages/AdminVideoEngines'; import AdminImageEngines from './pages/AdminImageEngines'; import AdminCreditRatios from './pages/AdminCreditRatios'; import AdminMenuConfig from './pages/AdminMenuConfig'; import AdminRechargePackages from './pages/AdminRechargePackages'; import AdminOperationLogs from './pages/AdminOperationLogs'; import AdminOauthAppList from './pages/AdminOauthAppList'; import AdminGenerationRecords from './pages/AdminGenerationRecords'; import AdminGenerationAiRecords from './pages/AdminGenerationAiRecords'; import { useAdminStore } from './store'; const ProtectedRoute = ({ children }: { children: React.ReactNode }) => { const { user, loading, checkAuth } = useAdminStore(); useEffect(() => { const token = localStorage.getItem('auth_token'); if (!token && !loading && !user) { window.location.href = '/login'; } }, [user, loading]); if (loading) { return (
); } if (!user) { window.location.href = '/login'; return null; } return <>{children}; }; const App = () => { const { checkAuth } = useAdminStore(); useEffect(() => { checkAuth(); }, []); return ( } /> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); }; export default App;