import { Suspense, lazy, useEffect } from 'react' import { Spin } from 'antd' import { BrowserRouter, HashRouter, Navigate, Outlet, Route, Routes, useLocation, } from 'react-router' import { getAdminRole, hasAdminSession } from '@/utils/admin-auth' import { isWorkerSite, WORKER_SITE_ORIGIN } from '@/utils/site' import { hasWorkerSession } from '@/utils/worker-auth' import { resolveLegacyWorkerPath } from '@/utils/worker-routes' import AdminLayout from '@/layouts/AdminLayout' import WorkerLayout from '@/layouts/WorkerLayout' const AdminDashboardPage = lazy(() => import('@/pages/admin/AdminDashboardPage')) const AdminAuditLogsPage = lazy(() => import('@/pages/admin/AdminAuditLogsPage')) const AdminCloudtentaclesRecordsPage = lazy( () => import('@/pages/admin/AdminCloudtentaclesRecordsPage'), ) const AdminKuaishouIndustryPage = lazy(() => import('@/pages/admin/AdminKuaishouIndustryPage')) const AdminLoginPage = lazy(() => import('@/pages/admin/AdminLoginPage')) const AdminOrderDetailPage = lazy(() => import('@/pages/admin/AdminOrderDetailPage')) const AdminOrdersPage = lazy(() => import('@/pages/admin/AdminOrdersPage')) const AdminPlatformFulfillmentPage = lazy( () => import('@/pages/admin/platform/AdminPlatformFulfillmentPage'), ) const AdminPlatformShopsPage = lazy(() => import('@/pages/admin/platform/AdminPlatformShopsPage')) const AdminTaskDetailPage = lazy(() => import('@/pages/admin/AdminTaskDetailPage')) const AdminTasksPage = lazy(() => import('@/pages/admin/AdminTasksPage')) const AdminUsersPage = lazy(() => import('@/pages/admin/AdminUsersPage')) const AdminDevMockPage = lazy(() => import('@/pages/admin/AdminDevMockPage')) const AdminWorkerPlatformPage = lazy(() => import('@/pages/admin/AdminWorkerPlatformPage')) const ClaimPage = lazy(() => import('@/pages/claim/ClaimPage')) const CollectPage = lazy(() => import('@/pages/collect/CollectPage')) const NotFoundPage = lazy(() => import('@/pages/NotFoundPage')) const WorkerHallPage = lazy(() => import('@/pages/worker/WorkerHallPage')) const WorkerLoginPage = lazy(() => import('@/pages/worker/WorkerLoginPage')) const WorkerOrdersPage = lazy(() => import('@/pages/worker/WorkerOrdersPage')) const WorkerProfilePage = lazy(() => import('@/pages/worker/WorkerProfilePage')) function RequireAdmin() { const location = useLocation() if (!hasAdminSession()) { return } return } function RequireRole({ roles }: { roles: Array<'admin' | 'operator' | 'support'> }) { if (!roles.includes(getAdminRole())) { return } return } function LoginRoute() { if (hasAdminSession()) { return } return } function RequireWorker() { const location = useLocation() if (!hasWorkerSession()) { return } return } export default function App() { const legacyWorkerPath = resolveLegacyWorkerPath(window.location.hash) if (legacyWorkerPath) { return } if (isWorkerSite()) { return } return } function AdminApplication() { return ( }> } /> } /> }> }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> }> } /> } /> } /> } /> } /> } /> } /> ) } function WorkerApplication() { return ( }> } /> }> }> } /> } /> } /> } /> ) } function WorkerSiteRedirect({ path }: { path: string }) { useEffect(() => { window.location.replace(`${WORKER_SITE_ORIGIN}${path}`) }, [path]) return } function RouteLoading() { return (
) }