secondary.tsx raw
1 import ChatChannelPage from '@/pages/secondary/ChatChannelPage'
2 import AppearanceSettingsPage from '@/pages/secondary/AppearanceSettingsPage'
3 import BookmarkPage from '@/pages/secondary/BookmarkPage'
4 import DMConversationPage from '@/pages/secondary/DMConversationPage'
5 import EmojiPackSettingsPage from '@/pages/secondary/EmojiPackSettingsPage'
6 import ExternalContentPage from '@/pages/secondary/ExternalContentPage'
7 import FollowingListPage from '@/pages/secondary/FollowingListPage'
8 import FollowPackPage from '@/pages/secondary/FollowPackPage'
9 import GeneralSettingsPage from '@/pages/secondary/GeneralSettingsPage'
10 import HelpPage from '@/pages/secondary/HelpPage'
11 import LoginPage from '@/pages/secondary/LoginPage'
12 import LogoutPage from '@/pages/secondary/LogoutPage'
13 import MuteListPage from '@/pages/secondary/MuteListPage'
14 import NoteListPage from '@/pages/secondary/NoteListPage'
15 import NotePage from '@/pages/secondary/NotePage'
16 import OthersRelaySettingsPage from '@/pages/secondary/OthersRelaySettingsPage'
17 import PostSettingsPage from '@/pages/secondary/PostSettingsPage'
18 import ProfileEditorPage from '@/pages/secondary/ProfileEditorPage'
19 import ProfileListPage from '@/pages/secondary/ProfileListPage'
20 import ProfilePage from '@/pages/secondary/ProfilePage'
21 import RelayPage from '@/pages/secondary/RelayPage'
22 import RelayReviewsPage from '@/pages/secondary/RelayReviewsPage'
23 import RelaySettingsPage from '@/pages/secondary/RelaySettingsPage'
24 import RizfulPage from '@/pages/secondary/RizfulPage'
25 import SearchPage from '@/pages/secondary/SearchPage'
26 import SettingsPage from '@/pages/secondary/SettingsPage'
27 import SystemSettingsPage from '@/pages/secondary/SystemSettingsPage'
28 import WalletPage from '@/pages/secondary/WalletPage'
29 import { match } from 'path-to-regexp'
30 import { isValidElement } from 'react'
31
32 // Right column routes
33 const SECONDARY_ROUTE_CONFIGS = [
34 { path: '/login', element: <LoginPage /> },
35 { path: '/logout', element: <LogoutPage /> },
36 { path: '/notes', element: <NoteListPage /> },
37 { path: '/notes/:id', element: <NotePage /> },
38 { path: '/users', element: <ProfileListPage /> },
39 { path: '/users/:id', element: <ProfilePage /> },
40 { path: '/users/:id/following', element: <FollowingListPage /> },
41 { path: '/users/:id/relays', element: <OthersRelaySettingsPage /> },
42 { path: '/relays/:url', element: <RelayPage /> },
43 { path: '/relays/:url/reviews', element: <RelayReviewsPage /> },
44 { path: '/search', element: <SearchPage /> },
45 { path: '/external-content', element: <ExternalContentPage /> },
46 { path: '/settings', element: <SettingsPage /> },
47 { path: '/help', element: <HelpPage /> },
48 { path: '/settings/relays', element: <RelaySettingsPage /> },
49 { path: '/settings/wallet', element: <WalletPage /> },
50 { path: '/settings/posts', element: <PostSettingsPage /> },
51 { path: '/settings/general', element: <GeneralSettingsPage /> },
52 { path: '/settings/appearance', element: <AppearanceSettingsPage /> },
53 { path: '/settings/emoji-packs', element: <EmojiPackSettingsPage /> },
54 { path: '/settings/system', element: <SystemSettingsPage /> },
55 { path: '/profile-editor', element: <ProfileEditorPage /> },
56 { path: '/mutes', element: <MuteListPage /> },
57 { path: '/rizful', element: <RizfulPage /> },
58 { path: '/bookmarks', element: <BookmarkPage /> },
59 { path: '/dm/:pubkey', element: <DMConversationPage /> },
60 { path: '/follow-packs/:id', element: <FollowPackPage /> },
61 { path: '/chat/:channelId', element: <ChatChannelPage /> }
62 ]
63
64 export const SECONDARY_ROUTES = SECONDARY_ROUTE_CONFIGS.map(({ path, element }) => ({
65 path,
66 element: isValidElement(element) ? element : null,
67 matcher: match(path)
68 }))
69