import React, { useEffect, useState } from 'react' import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom' import { useAppStore } from './store' import { ToastProvider } from './contexts/ToastContext' import AuthService from './services/authService' // 懒加载页面组件 const Login = React.lazy(() => import('./pages/Login')) const Lottery = React.lazy(() => import('./pages/Lottery')) const Home = React.lazy(() => import('./pages/Home')) const Admin = React.lazy(() => import('./pages/Admin')) const WinnerDetails = React.lazy(() => import('./pages/WinnerDetails')) const ClearRecords = React.lazy(() => import('./pages/ClearRecords')) const ConfettiDemo = React.lazy(() => import('./pages/ConfettiDemo')) const CrudTest = React.lazy(() => import('./pages/CrudTest')) const NetworkTest = React.lazy(() => import('./pages/NetworkTest')) const SimpleNetworkTest = React.lazy(() => import('./pages/SimpleNetworkTest')) function App() { const { isAuthenticated, initializeApp, checkAuthStatus } = useAppStore() const [isInitializing, setIsInitializing] = useState(true) useEffect(() => { const initApp = async () => { try { // 首先检查认证状态 checkAuthStatus() // 然后初始化应用 await initializeApp() } catch (error) { console.error('应用初始化失败:', error) } finally { setIsInitializing(false) } } initApp() }, [initializeApp, checkAuthStatus]) // 监听页面可见性变化,恢复时检查认证状态 useEffect(() => { const handleVisibilityChange = () => { if (!document.hidden) { checkAuthStatus() } } document.addEventListener('visibilitychange', handleVisibilityChange) return () => { document.removeEventListener('visibilitychange', handleVisibilityChange) } }, [checkAuthStatus]) // 应用卸载时清理资源 useEffect(() => { return () => { const { cleanup } = useAppStore.getState() cleanup() } }, []) // 应用初始化中的加载状态 if (isInitializing) { return (

正在初始化应用...

) } return (
{/* 背景装饰 */}
{/* 路由配置 */}

正在加载页面...

}> : } /> : } /> : } /> : } /> } /> : } /> : } /> } /> } /> } /> } />
) } export default App