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 AdminAuthoriz from './pages/AdminAuthoriz'; import AdminConsume from './pages/AdminConsume'; import AdminLoginPage from './pages/AdminLoginPage'; import AdminDashboard from './pages/AdminDashboard'; import AdminPlatform from './pages/AdminPlatform'; import AdminUsers from './pages/AdminUsers'; import AdminTeams from './pages/AdminTeams'; 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 AdminHotOpeningReplications from './pages/AdminHotOpeningReplications'; import AdminHotOpeningReplicationDetail from './pages/AdminHotOpeningReplicationDetail'; import AdminShotReplications from './pages/AdminShotReplications'; import AdminShotTaskSetDetail from './pages/AdminShotTaskSetDetail'; import AdminReplicationProjectDetail from './pages/AdminReplicationProjectDetail'; import AdminVideoPromptSchemaConfig from './pages/AdminVideoPromptSchemaConfig'; import AdminVideoUpscale from './pages/AdminVideoUpscale'; import AdminContactRequests from './pages/AdminContactRequests'; import AdminHomeMaterials from './pages/AdminHomeMaterials'; import AdminPreTestTemplates from './pages/AdminPreTestTemplates'; import AdminOAuthList from './pages/AdminOAuthList'; import AdminMaterialList from './pages/AdminMaterialList'; import AdminPrivatePortraitProjects from './pages/AdminPrivatePortraitProjects'; 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 (