1 import { IRouteProps } from "inferno-router/dist/Route";
2 import { Communities } from "./components/community/communities";
3 import { Community } from "./components/community/community";
4 import { CreateCommunity } from "./components/community/create-community";
5 import { AdminSettings } from "./components/home/admin-settings";
6 import { Home } from "./components/home/home";
7 import { Instances } from "./components/home/instances";
8 import { Legal } from "./components/home/legal";
9 import { Login } from "./components/home/login";
10 import { LoginReset } from "./components/home/login-reset";
11 import { Setup } from "./components/home/setup";
12 import { Signup } from "./components/home/signup";
13 import { Modlog } from "./components/modlog";
14 import { Inbox } from "./components/person/inbox";
15 import { PasswordChange } from "./components/person/password-change";
16 import { Profile } from "./components/person/profile";
17 import { RegistrationApplications } from "./components/person/registration-applications";
18 import { Reports } from "./components/person/reports";
19 import { Settings } from "./components/person/settings";
20 import { VerifyEmail } from "./components/person/verify-email";
21 import { CreatePost } from "./components/post/create-post";
22 import { Post } from "./components/post/post";
23 import { CreatePrivateMessage } from "./components/private_message/create-private-message";
24 import { Search } from "./components/search";
25 import { InitialFetchRequest, RouteData } from "./interfaces";
27 interface IRoutePropsWithFetch<T extends RouteData> extends IRouteProps {
28 fetchInitialData?(req: InitialFetchRequest): Promise<T>;
31 export const routes: IRoutePropsWithFetch<Record<string, any>>[] = [
35 fetchInitialData: Home.fetchInitialData,
44 component: LoginReset,
52 component: CreatePost,
53 fetchInitialData: CreatePost.fetchInitialData,
56 path: `/create_community`,
57 component: CreateCommunity,
60 path: `/create_private_message/:recipient_id`,
61 component: CreatePrivateMessage,
62 fetchInitialData: CreatePrivateMessage.fetchInitialData,
66 component: Communities,
67 fetchInitialData: Communities.fetchInitialData,
70 path: `/post/:post_id`,
72 fetchInitialData: Post.fetchInitialData,
75 path: `/comment/:comment_id`,
77 fetchInitialData: Post.fetchInitialData,
82 fetchInitialData: Community.fetchInitialData,
87 fetchInitialData: Profile.fetchInitialData,
92 fetchInitialData: Inbox.fetchInitialData,
99 path: `/modlog/:communityId`,
101 fetchInitialData: Modlog.fetchInitialData,
106 fetchInitialData: Modlog.fetchInitialData,
108 { path: `/setup`, component: Setup },
111 component: AdminSettings,
112 fetchInitialData: AdminSettings.fetchInitialData,
117 fetchInitialData: Reports.fetchInitialData,
120 path: `/registration_applications`,
121 component: RegistrationApplications,
122 fetchInitialData: RegistrationApplications.fetchInitialData,
127 fetchInitialData: Search.fetchInitialData,
130 path: `/password_change/:token`,
131 component: PasswordChange,
134 path: `/verify_email/:token`,
135 component: VerifyEmail,
139 component: Instances,
140 fetchInitialData: Instances.fetchInitialData,
142 { path: `/legal`, component: Legal },