/** 前端入口:antd v6 + react-router,路由守卫由 App 内 authGate 状态控制 */ import React from "react"; import { createRoot } from "react-dom/client"; import { ConfigProvider, App as AntdApp } from "antd"; import zhCN from "antd/locale/zh_CN"; import { createBrowserRouter, RouterProvider } from "react-router-dom"; import { antdTheme } from "./theme.ts"; import "./styles.css"; import { App } from "./App.tsx"; import { LoginPage } from "./pages/Login.tsx"; import { OAuthSimPage } from "./pages/OAuthSim.tsx"; import { DashboardPage } from "./pages/Dashboard.tsx"; import { NodesPage } from "./pages/Nodes.tsx"; import { DomainsPage } from "./pages/Domains.tsx"; import { MailboxesPage } from "./pages/Mailboxes.tsx"; import { EmailsPage } from "./pages/Emails.tsx"; import { WebhooksPage } from "./pages/Webhooks.tsx"; import { KeysPage } from "./pages/Keys.tsx"; import { setUnauthorizedHandler } from "./api.ts"; /** # 成员变量: 路由表 **/ const router = createBrowserRouter([ { path: "/login", element: }, { path: "/oauth/sim/authorize", element: }, { path: "/", element: , children: [ { index: true, element: }, { path: "nodes", element: }, { path: "domains", element: }, { path: "mailboxes", element: }, { path: "emails", element: }, { path: "webhooks", element: }, { path: "keys", element: }, ], }, ]); /** 未登录统一跳登录页 */ setUnauthorizedHandler(() => { if (!location.pathname.startsWith("/login")) { location.href = "/login"; } }); createRoot(document.getElementById("root")!).render( , );