book_manage/apps/web/src/routes/index.tsx

97 lines
2.2 KiB
TypeScript
Raw Normal View History

2024-07-11 11:00:51 +08:00
import {
2024-12-30 08:26:40 +08:00
createBrowserRouter,
IndexRouteObject,
Link,
2025-04-10 11:10:33 +08:00
Navigate,
2024-12-30 08:26:40 +08:00
NonIndexRouteObject,
2025-02-24 19:10:38 +08:00
useParams,
2024-07-11 11:00:51 +08:00
} from "react-router-dom";
2024-07-22 10:07:05 +08:00
import ErrorPage from "../app/error";
2025-04-09 11:40:44 +08:00
import LoginPage from "../app/login";
import WithAuth from "../components/utils/with-auth";
import { CodeManageProvider } from "../app/admin/code-manage/CodeManageContext";
import CodeManageLayout from "../app/admin/code-manage/CodeManageLayout";
2025-04-09 11:44:54 +08:00
import QuickUploadPage from "../app/admin/quick-file/page";
2025-04-09 17:01:21 +08:00
import { QuickFileProvider } from "../app/admin/quick-file/quickFileContext";
2025-04-10 11:10:33 +08:00
import QuickFileManage from "../app/admin/quick-file/manage";
import { DashboardProvider } from "../app/admin/dashboard/DashboardContext";
import DashboardLayout from "../app/admin/dashboard/DashboardLayout";
2024-09-10 10:31:24 +08:00
interface CustomIndexRouteObject extends IndexRouteObject {
2024-12-30 08:26:40 +08:00
name?: string;
breadcrumb?: string;
2024-09-10 10:31:24 +08:00
}
2024-12-30 08:26:40 +08:00
interface CustomIndexRouteObject extends IndexRouteObject {
name?: string;
breadcrumb?: string;
2024-09-10 10:31:24 +08:00
}
2024-12-30 08:26:40 +08:00
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[] = [
{
2025-04-02 21:59:19 +08:00
path: "/",
2025-04-09 17:01:21 +08:00
element: <>
<QuickFileProvider>
<QuickUploadPage></QuickUploadPage>
</QuickFileProvider>
</>,
2024-12-30 08:26:40 +08:00
errorElement: <ErrorPage />,
2025-04-02 21:59:19 +08:00
},
2025-04-09 11:40:44 +08:00
{
path: "/login",
breadcrumb: "登录",
element: <LoginPage></LoginPage>,
},
{
path: "/code-manage",
element: <>
<WithAuth>
<CodeManageProvider>
<CodeManageLayout></CodeManageLayout>
</CodeManageProvider>
</WithAuth>
</>
},
2025-04-10 11:10:33 +08:00
{
path: "/manage",
element: <>
<WithAuth>
<QuickFileManage></QuickFileManage>
</WithAuth>
</>,
children: [
{
index: true,
element: <Navigate to="/manage/dashboard" replace />
},
{
path: "/manage/share-code",
element: <>
<CodeManageProvider>
<CodeManageLayout></CodeManageLayout>
</CodeManageProvider>
</>
},
{
path: "/manage/dashboard",
element: <>
<DashboardProvider>
<DashboardLayout></DashboardLayout>
</DashboardProvider>
</>
}
]
}
2024-12-30 08:26:40 +08:00
];
2024-09-09 18:48:07 +08:00
2024-09-10 10:31:24 +08:00
export const router = createBrowserRouter(routes);