import { Component, lazy, Suspense, useEffect, useState, type ErrorInfo, type ReactNode } from 'react' import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom' import { Toaster } from 'sonner' import { Button } from '@/components/ui/button' import { BrandProvider, useBrand } from '@/brand/BrandContext' import { verifyToken } from '@/api/auth' import { getToken } from '@/api/client' const HomePage = lazy(() => import('@/viewer/pages/HomePage')) const WatchPage = lazy(() => import('@/viewer/pages/WatchPage')) const AdminLayout = lazy(() => import('@/admin/AdminLayout')) const LoginPage = lazy(() => import('@/admin/LoginPage')) const Dashboard = lazy(() => import('@/admin/pages/Dashboard')) const LiveBoard = lazy(() => import('@/admin/pages/LiveBoard')) const StreamList = lazy(() => import('@/admin/pages/StreamList')) const StreamForm = lazy(() => import('@/admin/pages/StreamForm')) const ReplayEditor = lazy(() => import('@/admin/pages/ReplayEditor')) const NodeManager = lazy(() => import('@/admin/pages/NodeManager')) const SettingsPage = lazy(() => import('@/admin/pages/Settings')) const SwaggerPage = lazy(() => import('@/admin/pages/SwaggerPage')) class PageErrorBoundary extends Component<{ children: ReactNode }, { failed: boolean }> { state = { failed: false } static getDerivedStateFromError() { return { failed: true } } componentDidCatch(error: Error, info: ErrorInfo) { console.error('Page render failed', error, info) } render() { if (this.state.failed) { return (
页面遇到异常,请重新加载后再试。