You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AppRoutes.js 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import React, { useEffect } from "react";
  2. import { Redirect, Route, Switch } from "react-router-dom";
  3. import { useDispatch } from "react-redux";
  4. import { refreshUserToken } from "./store/actions/login/loginActions";
  5. import { useLocation } from "react-router-dom";
  6. import {
  7. ADS_PAGE,
  8. AD_DETAILS_PAGE,
  9. FORGOT_PASSWORD_PAGE,
  10. FORGOT_PASSWORD_CONFIRMATION_PAGE,
  11. NOT_FOUND_PAGE,
  12. ERROR_PAGE,
  13. BASE_PAGE,
  14. RESET_PASSWORD_PAGE,
  15. USERS_PAGE,
  16. CANDIDATES_PAGE,
  17. USER_DETAILS_PAGE,
  18. CANDIDATES_DETAILS_PAGE,
  19. SELECTION_PROCESS_PAGE,
  20. SELECTION_PROCESS_OF_APPLICANT_PAGE,
  21. PATTERNS_PAGE,
  22. PATTERN_DETAILS_PAGE,
  23. SCHEDULE_PAGE,
  24. STATS_PAGE,
  25. REGISTER_PAGE,
  26. CREATE_AD_PAGE,
  27. } from "./constants/pages";
  28. import LoginPage from "./pages/LoginPage/LoginPageMUI";
  29. import AdsPage from "./pages/AdsPage/AdsPage";
  30. import NotFoundPage from "./pages/ErrorPages/NotFoundPage";
  31. import ErrorPage from "./pages/ErrorPages/ErrorPage";
  32. import ForgotPasswordPage from "./pages/ForgotPasswordPage/ForgotPasswordPageMUI";
  33. import PrivateRoute from "./components/Router/PrivateRoute";
  34. import ForgotPasswordConfirmationPage from "./pages/ForgotPasswordPage/ForgotPasswordConfirmationPageMUI";
  35. import ResetPasswordPage from "./pages/ForgotPasswordPage/ResetPasswordPageMUI";
  36. import UsersPage from "./pages/UsersPage/UsersPage";
  37. import CandidatesPage from "./pages/CandidatesPage/CandidatesPage";
  38. import AdDetailsPage from "./pages/AdsPage/AdDetailsPage";
  39. import UserDetails from "./pages/UsersPage/UserDetails";
  40. import CandidateDetailsPage from "./pages/CandidatesPage/CandidateDetailsPage";
  41. import SelectionProcessPage from "./pages/SelectionProcessPage/SelectionProcessPage";
  42. import SelectionProcessOfApplicantPage from "./pages/SelectionProcessPage/SelectionProcessOfApplicantPage";
  43. import PatternsPage from "./pages/PatternsPage/PatternsPage";
  44. import PatternDetailsPage from "./pages/PatternsPage/PatternDetailsPage";
  45. import SchedulePage from "./pages/SchedulePage/SchedulePage";
  46. import StatsPage from "./pages/StatsPage/StatsPage";
  47. import RegisterPage from "./pages/RegisterPage/RegisterPage";
  48. import CreateAdPage from "./pages/AdsPage/CreateAdPage";
  49. import DocsPage from "./pages/DocsPage/DocsPage";
  50. const AppRoutes = () => {
  51. const dispatch = useDispatch();
  52. const location = useLocation();
  53. useEffect(() => {
  54. if (location.pathname === BASE_PAGE) {
  55. return;
  56. }
  57. dispatch(refreshUserToken());
  58. }, [location]);
  59. return (
  60. <Switch>
  61. <Route exact path={'/docs'} component={DocsPage} />
  62. <Route exact path={BASE_PAGE} component={LoginPage} />
  63. <Route path={NOT_FOUND_PAGE} component={NotFoundPage} />
  64. {/* <Route path={USERS_PAGE} component={UsersPage} /> */}
  65. <Route path={ERROR_PAGE} component={ErrorPage} />
  66. <Route path={FORGOT_PASSWORD_PAGE} component={ForgotPasswordPage} />
  67. <Route
  68. path={FORGOT_PASSWORD_CONFIRMATION_PAGE}
  69. component={ForgotPasswordConfirmationPage}
  70. />
  71. <Route exact path={REGISTER_PAGE} component={RegisterPage} />
  72. <Route path={RESET_PASSWORD_PAGE} component={ResetPasswordPage} />
  73. <PrivateRoute exact path={ADS_PAGE} component={AdsPage} />
  74. <PrivateRoute exact path={AD_DETAILS_PAGE} component={AdDetailsPage} />
  75. <PrivateRoute exact path={USER_DETAILS_PAGE} component={UserDetails} />
  76. <PrivateRoute exact path={USERS_PAGE} component={UsersPage} />
  77. <PrivateRoute exact path={CANDIDATES_PAGE} component={CandidatesPage} />
  78. <PrivateRoute exact path={CREATE_AD_PAGE} component={CreateAdPage} />
  79. <PrivateRoute
  80. exact
  81. path={CANDIDATES_DETAILS_PAGE}
  82. component={CandidateDetailsPage}
  83. />
  84. <PrivateRoute
  85. exact
  86. path={SELECTION_PROCESS_PAGE}
  87. component={SelectionProcessPage}
  88. />
  89. <PrivateRoute
  90. exact
  91. path={SELECTION_PROCESS_OF_APPLICANT_PAGE}
  92. component={SelectionProcessOfApplicantPage}
  93. />
  94. <PrivateRoute
  95. exact
  96. path={PATTERN_DETAILS_PAGE}
  97. component={PatternDetailsPage}
  98. />
  99. <PrivateRoute exact path={PATTERNS_PAGE} component={PatternsPage} />
  100. <PrivateRoute exact path={SCHEDULE_PAGE} component={SchedulePage} />
  101. <PrivateRoute exact path={STATS_PAGE} component={StatsPage} />
  102. <Redirect from="*" to={NOT_FOUND_PAGE} />
  103. </Switch>
  104. );
  105. };
  106. export default AppRoutes;