Router.tsx 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. import { Route, Routes } from "react-router-dom";
  2. import Anonymous from "./layouts/anonymous";
  3. import Dashboard from "./layouts/dashboard";
  4. import NutUsersSignIn from "./pages/nut/users/sign-in";
  5. import NutUsersSignUp from "./pages/nut/users/sign-up";
  6. import NutUsersUnlockNew from "./pages/nut/users/unlock/new";
  7. import NutUsersUnlockVerify from "./pages/nut/users/unlock/verify";
  8. import NutUsersResetPassword from "./pages/nut/users/reset-password";
  9. import NutUsersForgotPassword from "./pages/nut/users/forgot-password";
  10. import NutUsersChangePassword from "./pages/nut/users/change-password";
  11. import NutUsersAccountInfo from "./pages/nut/users/account-info";
  12. import NutUsersLogs from "./pages/nut/users/logs";
  13. import NutForbidden from "./pages/nut/forbidden";
  14. import NutNotFound from "./pages/nut/not-found";
  15. import NutSwitchLanguage from "./pages/nut/switch-languages";
  16. import NutHome from "./pages/nut";
  17. import AdminHome from "./pages/admin";
  18. import AdminRelation from "./pages/admin/relation";
  19. import AdminRelationList from "./pages/admin/relation/list";
  20. import AdminNissayaEnding from "./pages/admin/nissaya-ending";
  21. import AdminNissayaEndingList from "./pages/admin/nissaya-ending/list";
  22. import AdminApi from "./pages/admin/api";
  23. import AdminApiDashboard from "./pages/admin/api/dashboard";
  24. import LibraryHome from "./pages/library";
  25. import LibraryCommunity from "./pages/library/community";
  26. import LibraryCommunityList from "./pages/library/community/list";
  27. import LibraryPalicanon from "./pages/library/palicanon";
  28. import LibraryPalicanonByPath from "./pages/library/palicanon/bypath";
  29. import LibraryPalicanonChapter from "./pages/library/palicanon/chapter";
  30. import LibraryCourse from "./pages/library/course";
  31. import LibraryCourseList from "./pages/library/course/list";
  32. import LibraryCourseShow from "./pages/library/course/course";
  33. import LibraryTerm from "./pages/library/term";
  34. import LibraryTermShow from "./pages/library/term/show";
  35. import LibraryTermList from "./pages/library/term/list";
  36. import LibraryDict from "./pages/library/dict";
  37. import LibraryDictShow from "./pages/library/dict/show";
  38. import LibraryAnthology from "./pages/library/anthology";
  39. import LibraryAnthologyShow from "./pages/library/anthology/show";
  40. import LibraryAnthologyList from "./pages/library/anthology/list";
  41. import LibraryArticle from "./pages/library/article";
  42. import LibraryArticleShow from "./pages/library/article/show";
  43. import LibraryBlog from "./pages/library/blog";
  44. import LibraryBlogOverview from "./pages/library/blog/overview";
  45. import LibraryBlogTranslation from "./pages/library/blog/translation";
  46. import LibraryBlogCourse from "./pages/library/blog/course";
  47. import LibraryBlogAnthology from "./pages/library/blog/anthology";
  48. import LibraryBlogTerm from "./pages/library/blog/term";
  49. import LibraryDiscussion from "./pages/library/discussion";
  50. import LibraryDiscussionList from "./pages/library/discussion/list";
  51. import LibraryDiscussionTopic from "./pages/library/discussion/topic";
  52. import LibraryDiscussionShow from "./pages/library/discussion/show";
  53. import LibrarySearch from "./pages/library/search";
  54. import LibrarySearchKey from "./pages/library/search/search";
  55. import LibraryDownload from "./pages/library/download";
  56. import LibraryDownloadPage from "./pages/library/download/Download";
  57. import Studio from "./pages/studio";
  58. import StudioHome from "./pages/studio/home";
  59. import StudioPalicanon from "./pages/studio/palicanon";
  60. import StudioRecent from "./pages/studio/recent";
  61. import StudioRecentList from "./pages/studio/recent/list";
  62. import StudioChannel from "./pages/studio/channel";
  63. import StudioChannelList from "./pages/studio/channel/list";
  64. import StudioChannelEdit from "./pages/studio/channel/edit";
  65. import StudioChannelShow from "./pages/studio/channel/show";
  66. import StudioGroup from "./pages/studio/group";
  67. import StudioGroupList from "./pages/studio/group/list";
  68. import StudioGroupEdit from "./pages/studio/group/edit";
  69. import StudioGroupShow from "./pages/studio/group/show";
  70. import StudioCourse from "./pages/studio/course";
  71. import StudioCourseList from "./pages/studio/course/list";
  72. import StudioCourseEdit from "./pages/studio/course/edit";
  73. import StudioDict from "./pages/studio/dict";
  74. import StudioDictList from "./pages/studio/dict/list";
  75. import StudioTerm from "./pages/studio/term";
  76. import StudioTermList from "./pages/studio/term/list";
  77. import StudioArticle from "./pages/studio/article";
  78. import StudioArticleList from "./pages/studio/article/list";
  79. import StudioArticleEdit from "./pages/studio/article/edit";
  80. import StudioAnthology from "./pages/studio/anthology";
  81. import StudioAnthologyList from "./pages/studio/anthology/list";
  82. import StudioAnthologyEdit from "./pages/studio/anthology/edit";
  83. import StudioSetting from "./pages/studio/setting";
  84. import StudioAnalysis from "./pages/studio/analysis";
  85. import StudioAnalysisList from "./pages/studio/analysis/list";
  86. import StudioInvite from "./pages/studio/invite";
  87. import StudioInviteList from "./pages/studio/invite/list";
  88. import { ConfigProvider } from "antd";
  89. import { useAppSelector } from "./hooks";
  90. import { currTheme } from "./reducers/theme";
  91. const Widget = () => {
  92. const theme = useAppSelector(currTheme);
  93. return (
  94. <ConfigProvider prefixCls={theme}>
  95. <Routes>
  96. <Route path="admin" element={<AdminHome />}>
  97. <Route path="api" element={<AdminApi />}>
  98. <Route path="dashboard" element={<AdminApiDashboard />} />
  99. </Route>
  100. <Route path="relation" element={<AdminRelation />}>
  101. <Route path="list" element={<AdminRelationList />} />
  102. </Route>
  103. <Route path="nissaya-ending" element={<AdminNissayaEnding />}>
  104. <Route path="list" element={<AdminNissayaEndingList />} />
  105. <Route path="list/:relation" element={<AdminNissayaEndingList />} />
  106. </Route>
  107. </Route>
  108. <Route path="anonymous" element={<Anonymous />}>
  109. <Route path="users">
  110. <Route path="sign-in" element={<NutUsersSignIn />} />
  111. <Route path="sign-up/:token" element={<NutUsersSignUp />} />
  112. <Route path="unlock">
  113. <Route path="new" element={<NutUsersUnlockNew />} />
  114. <Route path="verify/:token" element={<NutUsersUnlockVerify />} />
  115. </Route>
  116. <Route
  117. path="reset-password/:token"
  118. element={<NutUsersResetPassword />}
  119. />
  120. <Route
  121. path="forgot-password"
  122. element={<NutUsersForgotPassword />}
  123. />
  124. </Route>
  125. </Route>
  126. <Route path="dashboard" element={<Dashboard />}>
  127. <Route path="users">
  128. <Route
  129. path="change-password"
  130. element={<NutUsersChangePassword />}
  131. />
  132. <Route path="logs" element={<NutUsersLogs />} />
  133. <Route path="account-info" element={<NutUsersAccountInfo />} />
  134. </Route>
  135. </Route>
  136. <Route path="switch-language" element={<NutSwitchLanguage />} />
  137. <Route path="forbidden" element={<NutForbidden />} />
  138. <Route path="nut" element={<NutHome />} />
  139. <Route path="" element={<LibraryHome />} />
  140. <Route path="*" element={<NutNotFound />} />
  141. <Route path="community" element={<LibraryCommunity />}>
  142. <Route path="list" element={<LibraryCommunityList />} />
  143. </Route>
  144. <Route path="palicanon" element={<LibraryPalicanon />}>
  145. <Route path="list" element={<LibraryPalicanonByPath />} />
  146. <Route path="list/:root" element={<LibraryPalicanonByPath />} />
  147. <Route path="list/:root/:path" element={<LibraryPalicanonByPath />} />
  148. <Route
  149. path="list/:root/:path/:tag"
  150. element={<LibraryPalicanonByPath />}
  151. />
  152. <Route path="chapter/:id" element={<LibraryPalicanonChapter />} />
  153. </Route>
  154. <Route path="course" element={<LibraryCourse />}>
  155. <Route path="list" element={<LibraryCourseList />}></Route>
  156. <Route path="show/:id" element={<LibraryCourseShow />}></Route>
  157. </Route>
  158. <Route path="term" element={<LibraryTerm />}>
  159. <Route path="list/:word" element={<LibraryTermList />}></Route>
  160. <Route path="show/:id" element={<LibraryTermShow />}></Route>
  161. </Route>
  162. <Route path="dict" element={<LibraryDict />}>
  163. <Route path=":word" element={<LibraryDictShow />} />
  164. <Route path="recent" element={<LibraryDictShow />} />
  165. </Route>
  166. <Route path="anthology" element={<LibraryAnthology />}>
  167. <Route path="list" element={<LibraryAnthologyList />} />
  168. <Route path=":id" element={<LibraryAnthologyShow />} />
  169. <Route
  170. path=":id/by_channel/:tags"
  171. element={<LibraryAnthologyShow />}
  172. />
  173. </Route>
  174. <Route path="article" element={<LibraryArticle />}>
  175. <Route path=":type" element={<LibraryArticleShow />} />
  176. <Route path=":type/:id" element={<LibraryArticleShow />} />
  177. <Route path=":type/:id/:mode" element={<LibraryArticleShow />} />
  178. <Route
  179. path=":type/:id/:mode/:param"
  180. element={<LibraryArticleShow />}
  181. />
  182. </Route>
  183. <Route path="discussion" element={<LibraryDiscussion />}>
  184. <Route path="list" element={<LibraryDiscussionList />} />
  185. <Route path="topic/:id" element={<LibraryDiscussionTopic />} />
  186. <Route path="show/:type/:id" element={<LibraryDiscussionShow />} />
  187. </Route>
  188. <Route path="blog/:studio" element={<LibraryBlog />}>
  189. <Route path="overview" element={<LibraryBlogOverview />} />
  190. <Route path="palicanon" element={<LibraryBlogTranslation />} />
  191. <Route path="course" element={<LibraryBlogCourse />} />
  192. <Route path="anthology" element={<LibraryBlogAnthology />} />
  193. <Route path="term" element={<LibraryBlogTerm />} />
  194. </Route>
  195. <Route path="search" element={<LibrarySearch />}>
  196. <Route path="home" element={<LibrarySearchKey />} />
  197. <Route path="key/:key" element={<LibrarySearchKey />} />
  198. </Route>
  199. <Route path="download" element={<LibraryDownload />}>
  200. <Route path="download" element={<LibraryDownloadPage />} />
  201. </Route>
  202. <Route path="studio/:studioname" element={<Studio />}>
  203. <Route path="home" element={<StudioHome />} />
  204. <Route path="palicanon" element={<StudioPalicanon />}></Route>
  205. <Route path="recent" element={<StudioRecent />}>
  206. <Route path="list" element={<StudioRecentList />} />
  207. </Route>
  208. <Route path="channel" element={<StudioChannel />}>
  209. <Route path="list" element={<StudioChannelList />} />
  210. <Route path=":channelid/edit" element={<StudioChannelEdit />} />
  211. <Route path=":channelId" element={<StudioChannelShow />} />
  212. </Route>
  213. <Route path="group" element={<StudioGroup />}>
  214. <Route path="list" element={<StudioGroupList />} />
  215. <Route path=":groupId" element={<StudioGroupShow />} />
  216. <Route path=":groupId/edit" element={<StudioGroupEdit />} />
  217. <Route path=":groupId/show" element={<StudioGroupShow />} />
  218. </Route>
  219. <Route path="course" element={<StudioCourse />}>
  220. <Route path="list" element={<StudioCourseList />} />
  221. <Route path=":courseId/edit" element={<StudioCourseEdit />} />
  222. </Route>
  223. <Route path="dict" element={<StudioDict />}>
  224. <Route path="list" element={<StudioDictList />} />
  225. </Route>
  226. <Route path="term" element={<StudioTerm />}>
  227. <Route path="list" element={<StudioTermList />} />
  228. </Route>
  229. <Route path="article" element={<StudioArticle />}>
  230. <Route path="list" element={<StudioArticleList />} />
  231. <Route path=":articleid/edit" element={<StudioArticleEdit />} />
  232. </Route>
  233. <Route path="anthology" element={<StudioAnthology />}>
  234. <Route path="list" element={<StudioAnthologyList />}></Route>
  235. <Route
  236. path=":anthology_id/edit"
  237. element={<StudioAnthologyEdit />}
  238. />
  239. </Route>
  240. <Route path="setting" element={<StudioSetting />} />
  241. <Route path="exp" element={<StudioAnalysis />}>
  242. <Route path="list" element={<StudioAnalysisList />} />
  243. </Route>
  244. <Route path="invite" element={<StudioInvite />}>
  245. <Route path="list" element={<StudioInviteList />} />
  246. </Route>
  247. </Route>
  248. </Routes>
  249. </ConfigProvider>
  250. );
  251. };
  252. export default Widget;