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 { lightTheme } from '@/utils/theme' import { useAuthStore } from '@/store/authStore' import { authApi } from '@/api/auth' import Layout from '@/components/Layout' import Login from '@/pages/Login' import Dashboard from '@/pages/Dashboard' import Billing from '@/pages/Billing' import SiteManagement from '@/pages/admin/SiteManagement' function ProtectedRoute({ children }: { children: React.ReactNode }) { const { isLoggedIn, loading } = useAuthStore() if (loading) { return (
) } return isLoggedIn ? <>{children} : } function SessionRestore({ children }: { children: React.ReactNode }) { const { sessionToken, login, logout, setLoading } = useAuthStore() useEffect(() => { if (sessionToken) { authApi.me() .then((res) => { if (res.data.success) { login(sessionToken, res.data.data.userInfo, res.data.data.site) } else { logout() } }) .catch(() => logout()) } else { setLoading(false) } }, []) return <>{children} } export default function App() { return ( } /> }> } /> } /> } /> } /> ) }