22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 1 | // src/routes/routes.ts |
| 2 | |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 3 | import { createBrowserRouter } from "react-router"; |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 4 | import Home from "../feature/home/Home"; |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 5 | import AuthLayout from "../feature/auth/AuthLayout"; |
| 6 | import Login from "../feature/auth/Login"; |
| 7 | import Register from "../feature/auth/Register"; |
| 8 | import Forget from "../feature/auth/Forget"; |
| 9 | import AppLayout from "../AppLayout"; |
| 10 | import withProtect from "./withProtect"; |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 11 | import Work from "../feature/work/Work"; |
| 12 | import CreateWork from "../feature/work/CreateWork"; |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 13 | |
22301021 | 313d1b2 | 2025-06-09 01:13:46 +0800 | [diff] [blame^] | 14 | import UserHome from "../feature/user/UserHome"; |
| 15 | |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 16 | // 创建受保护的组件 |
| 17 | const ProtectedHome = withProtect(Home); |
| 18 | const ProtectedWork = withProtect(Work); |
| 19 | const ProtectedCreatWork = withProtect(CreateWork) |
22301014 | 3d96630 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 20 | import FilmCategory from '../feature/categories/MovieCategory'; |
| 21 | import MusicCategory from '../feature/categories/MusicCategory'; |
| 22 | import GameCategory from '../feature/categories/GameCategory'; |
| 23 | import OtherCategory from '../feature/categories/OtherCategory'; |
| 24 | import WorkPage from '../feature/work/WorkPage'; |
| 25 | |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 26 | export default createBrowserRouter([ |
| 27 | { |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 28 | path: "/", |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 29 | Component: AppLayout, |
| 30 | children: [ |
| 31 | { |
| 32 | path: "/", |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 33 | Component: ProtectedHome, |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 34 | }, |
22301014 | 3d96630 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 35 | {path: 'categories/film', Component: FilmCategory,}, |
| 36 | {path: 'categories/music', Component: MusicCategory,}, |
| 37 | {path: 'categories/game', Component: GameCategory,}, |
| 38 | {path: 'categories/other', Component: OtherCategory,}, |
| 39 | {path: '/works/:id', Component: WorkPage, }, |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 40 | { |
22301021 | 313d1b2 | 2025-06-09 01:13:46 +0800 | [diff] [blame^] | 41 | path: "user", |
| 42 | Component: UserHome, |
| 43 | }, |
| 44 | { |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 45 | Component: AuthLayout, |
| 46 | children: [ |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 47 | { path: "/login", Component: Login }, |
| 48 | { path: "/register", Component: Register }, |
| 49 | { path: "/forget", Component: Forget }, |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 50 | ], |
| 51 | }, |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 52 | { |
| 53 | path: "/work/:work_id", |
| 54 | Component: ProtectedWork, |
| 55 | }, |
| 56 | { |
| 57 | path:"/work/creat", |
| 58 | Component: ProtectedCreatWork |
| 59 | } |
22301014 | b1477f7 | 2025-06-07 22:54:40 +0800 | [diff] [blame] | 60 | ], |
| 61 | }, |
22301014 | 4ce0587 | 2025-06-08 22:33:28 +0800 | [diff] [blame] | 62 | ]); |