import { createBrowserRouter, IndexRouteObject, Link, NonIndexRouteObject, } from "react-router-dom"; import ErrorPage from "../app/error"; import WithAuth from "../components/utils/with-auth"; import LoginPage from "../app/login"; import StudentCoursesPage from "../app/main/courses/student/page"; import InstructorCoursesPage from "../app/main/courses/instructor/page"; import HomePage from "../app/main/home/page"; import { CourseDetailPage } from "../app/main/course/detail/page"; import { CourseBasicForm } from "../components/models/course/editor/form/CourseBasicForm"; import CourseContentForm from "../components/models/course/editor/form/CourseContentForm/CourseContentForm"; import { CourseGoalForm } from "../components/models/course/editor/form/CourseGoalForm"; import CourseSettingForm from "../components/models/course/editor/form/CourseSettingForm"; import CourseEditorLayout from "../components/models/course/editor/layout/CourseEditorLayout"; import { MainLayout } from "../app/main/layout/MainLayout"; import CoursesPage from "../app/main/courses/page"; import PathsPage from "../app/main/paths/page"; import { adminRoute } from "./admin-route"; interface CustomIndexRouteObject extends IndexRouteObject { name?: string; breadcrumb?: string; } interface CustomIndexRouteObject extends IndexRouteObject { name?: string; breadcrumb?: string; } export interface CustomNonIndexRouteObject extends NonIndexRouteObject { name?: string; children?: CustomRouteObject[]; breadcrumb?: string; handle?: { crumb: (data?: any) => void; }; } export type CustomRouteObject = | CustomIndexRouteObject | CustomNonIndexRouteObject; export const routes: CustomRouteObject[] = [ { path: "/", errorElement: , handle: { crumb() { return 主页; }, }, children: [ { element: , children: [ { index: true, element: , }, { path: "paths", element: }, { path: "courses", element: , }, { path: "my-courses", }, { path: "profiles", }, { path: "courses", children: [ { path: "student", element: ( ), }, { path: "instructor", element: ( ), }, ], }, ], }, { path: "course", children: [ { path: ":id?/editor", element: , children: [ { index: true, element: , }, { path: "goal", element: , }, { path: "content", element: ( ), }, { path: "setting", element: ( ), }, ], }, { path: ":id?/detail", // 使用 ? 表示 id 参数是可选的 element: , }, ], }, adminRoute, ], }, { path: "/login", breadcrumb: "登录", element: , }, ]; export const router = createBrowserRouter(routes);