mirror of https://github.com/usememos/memos
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
2.8 KiB
TypeScript
119 lines
2.8 KiB
TypeScript
import { createBrowserRouter } from "react-router-dom";
|
|
import App from "@/App";
|
|
import HomeLayout from "@/layouts/HomeLayout";
|
|
import SuspenseWrapper from "@/layouts/SuspenseWrapper";
|
|
import About from "@/pages/About";
|
|
import Archived from "@/pages/Archived";
|
|
import AuthCallback from "@/pages/AuthCallback";
|
|
import Explore from "@/pages/Explore";
|
|
import Home from "@/pages/Home";
|
|
import Inboxes from "@/pages/Inboxes";
|
|
import MemoDetail from "@/pages/MemoDetail";
|
|
import NotFound from "@/pages/NotFound";
|
|
import PermissionDenied from "@/pages/PermissionDenied";
|
|
import Resources from "@/pages/Resources";
|
|
import Setting from "@/pages/Setting";
|
|
import SignIn from "@/pages/SignIn";
|
|
import SignUp from "@/pages/SignUp";
|
|
import Timeline from "@/pages/Timeline";
|
|
import UserProfile from "@/pages/UserProfile";
|
|
|
|
export enum Routes {
|
|
HOME = "/",
|
|
TIMELINE = "/timeline",
|
|
RESOURCES = "/resources",
|
|
INBOX = "/inbox",
|
|
ARCHIVED = "/archived",
|
|
SETTING = "/setting",
|
|
EXPLORE = "/explore",
|
|
ABOUT = "/about",
|
|
AUTH = "/auth",
|
|
}
|
|
|
|
const router = createBrowserRouter([
|
|
{
|
|
path: "/",
|
|
element: <App />,
|
|
children: [
|
|
{
|
|
path: Routes.AUTH,
|
|
element: <SuspenseWrapper />,
|
|
children: [
|
|
{
|
|
path: "",
|
|
element: <SignIn />,
|
|
},
|
|
{
|
|
path: "signup",
|
|
element: <SignUp />,
|
|
},
|
|
{
|
|
path: "callback",
|
|
element: <AuthCallback />,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: "/",
|
|
element: <HomeLayout />,
|
|
children: [
|
|
{
|
|
path: Routes.HOME,
|
|
element: <Home />,
|
|
},
|
|
{
|
|
path: Routes.TIMELINE,
|
|
element: <Timeline />,
|
|
},
|
|
{
|
|
path: Routes.RESOURCES,
|
|
element: <Resources />,
|
|
},
|
|
{
|
|
path: Routes.INBOX,
|
|
element: <Inboxes />,
|
|
},
|
|
{
|
|
path: Routes.ARCHIVED,
|
|
element: <Archived />,
|
|
},
|
|
{
|
|
path: Routes.SETTING,
|
|
element: <Setting />,
|
|
},
|
|
{
|
|
path: Routes.EXPLORE,
|
|
element: <Explore />,
|
|
},
|
|
{
|
|
path: "m/:uid",
|
|
element: <MemoDetail />,
|
|
},
|
|
{
|
|
path: "u/:username",
|
|
element: <UserProfile />,
|
|
},
|
|
{
|
|
path: Routes.ABOUT,
|
|
element: <About />,
|
|
},
|
|
{
|
|
path: "403",
|
|
element: <PermissionDenied />,
|
|
},
|
|
{
|
|
path: "404",
|
|
element: <NotFound />,
|
|
},
|
|
{
|
|
path: "*",
|
|
element: <NotFound />,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
]);
|
|
|
|
export default router;
|