import React, { Suspense } from 'react'; import { BrowserRouter, HashRouter, Routes, Route, Navigate, useLocation } from 'react-router-dom'; import { Layout } from './components/layout/Layout'; import { useAuth } from './auth/AuthProvider'; import Login from './pages/Login'; import Overview from './pages/Overview'; import Files from './pages/Files'; import RecycleBin from './pages/RecycleBin'; import Transfer from './pages/Transfer'; import FileShare from './pages/FileShare'; import Games from './pages/Games'; import GamePlayer from './pages/GamePlayer'; import { FILE_SHARE_ROUTE_PREFIX } from './lib/file-share'; import { getTransferRouterMode, LEGACY_PUBLIC_TRANSFER_ROUTE, PUBLIC_TRANSFER_ROUTE, } from './lib/transfer-links'; const PortalAdminApp = React.lazy(() => import('./admin/AdminApp')); function LegacyTransferRedirect() { const location = useLocation(); return ; } function AppRoutes() { const { ready, session } = useAuth(); const location = useLocation(); const isPublicTransferRoute = location.pathname === PUBLIC_TRANSFER_ROUTE || location.pathname === LEGACY_PUBLIC_TRANSFER_ROUTE; const isPublicFileShareRoute = location.pathname.startsWith(`${FILE_SHARE_ROUTE_PREFIX}/`); if (!ready && !isPublicTransferRoute && !isPublicFileShareRoute) { return (
正在检查登录状态...
); } const isAuthenticated = Boolean(session?.token); return ( : } /> } /> } /> : } /> : } > } /> } /> } /> } /> } /> } /> 正在加载后台管理台... } > ) : ( ) } /> } /> ); } export default function App() { const Router = getTransferRouterMode() === 'hash' ? HashRouter : BrowserRouter; return ( ); }