diff --git a/src/App.jsx b/src/App.jsx
index b0aabcb1..df7a76e4 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -10,50 +10,9 @@ import {
import { getNotification } from "@redux/outstaffingSlice";
-import { Article } from "@pages/Article/Article";
-import { Auth } from "@pages/Auth/Auth";
-import { AuthForCandidate } from "@pages/AuthForCandidate/AuthForCandidate";
-import { Blog } from "@pages/Blog/Blog";
-import CatalogSpecialists from "@pages/CatalogSpecialists/CatalogSpecialists";
-import { CompanyInfo } from "@pages/CompanyInfo/CompanyInfo";
-import { FormPage } from "@pages/FormPage/FormPage";
-import { Forms } from "@pages/Forms/Forms";
-import { FrequentlyAskedQuestion } from "@pages/FrequentlyAskedQuestion/FrequentlyAskedQuestion";
-import { FrequentlyAskedQuestions } from "@pages/FrequentlyAskedQuestions/FrequentlyAskedQuestions";
-import { Home } from "@pages/Home/Home";
-import { PartnerAddRequest } from "@pages/PartnerAddRequest/PartnerAddRequest";
-import { PartnerBid } from "@pages/PartnerBid/PartnerBid";
-import { PartnerEmployeeReport } from "@pages/PartnerEmployeeReport/PartnerEmployeeReport";
-import { PartnerEmployees } from "@pages/PartnerEmployees/PartnerEmployees";
-import { PartnerRequests } from "@pages/PartnerRequests/PartnerRequests";
-import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
-import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
-import { PartnerCategories } from "@pages/PartnerСategories/PartnerСategories";
-import { Payouts } from "@pages/Payouts/Payouts";
-import { Profile } from "@pages/Profile/Profile";
-import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
-import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
-import { PassingTests } from "@pages/Quiz/PassingTests";
-import { QuizPage } from "@pages/Quiz/QuizPage";
-import { QuizReportPage } from "@pages/Quiz/QuizReportPage";
-import { RegistrationForCandidate } from "@pages/RegistrationForCandidate/RegistrationForCandidate";
-import { RegistrationSetting } from "@pages/RegistrationSetting/RegistrationSetting";
-import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
-import Statistics from "@pages/Statistics/Statistics";
-import { Summary } from "@pages/Summary/Summary";
-import { Tracker } from "@pages/Tracker/Tracker";
-import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
-import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
-import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
-import { ViewReport } from "@pages/ViewReport/ViewReport";
+import { MainPage } from "@pages/MainPage/MainPage";
-import { Calendar } from "@components/Calendar/Calendar";
-import { Candidate } from "@components/Candidate/Candidate";
-import { FreeDevelopers } from "@components/FreeDevelopers/FreeDevelopers";
-import { TicketFullScreen } from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
import { Notification } from "@components/Notification/Notification";
-import { ProfileCalendar } from "@components/ProfileCalendar/ProfileCalendar";
-import { ReportForm } from "@components/ReportForm/ReportForm";
import "assets/fonts/stylesheet.css";
import "assets/global.scss";
@@ -64,109 +23,7 @@ const App = () => {
<>
- } />
- } />
- } />
- } />
- }
- />
- } />
- }
- />
- }
- />
-
- } />
- }
- >
- }
- />
-
- } />
- }
- />
-
- }>
- }>
- }
- />
- }
- />
-
- } />
- } />
- } />
-
- } />
-
-
- } />
- } />
- } />
- } />
- }
- />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- } />
- }
- />
- } />
-
- } />
- } />
- } />
-
-
- }
- />
-
-
-
- } />
-
-
- } />
+ } />
{notification.show && }
diff --git a/src/api/request.js b/src/api/request.js
index 4c07b441..d7615cbc 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -41,7 +41,7 @@ export const apiRequest = (
if (response.data?.redirect || response.status === 401) {
window.location.replace("/auth");
localStorage.clear();
- // dispatch(auth(false));
+ store.dispatch(auth(false));
store.dispatch(setProfileInfo({}));
}
return resolve(response);
diff --git a/src/components/AuthBox/AuthBox.jsx b/src/components/AuthBox/AuthBox.jsx
index 27c5bf67..8ebf1394 100644
--- a/src/components/AuthBox/AuthBox.jsx
+++ b/src/components/AuthBox/AuthBox.jsx
@@ -70,6 +70,7 @@ export const AuthBox = ({ title }) => {
dispatch(setUserInfo(res));
dispatch(loading(false));
dispatch(setRole("ROLE_PARTNER"));
+ navigate("/profile");
}
});
}
diff --git a/src/components/Common/AuthHeader/AuthHeader.jsx b/src/components/Common/AuthHeader/AuthHeader.jsx
index c39b072d..19e8ebac 100644
--- a/src/components/Common/AuthHeader/AuthHeader.jsx
+++ b/src/components/Common/AuthHeader/AuthHeader.jsx
@@ -24,9 +24,9 @@ export const AuthHeader = () => {
Главная
-
- Кабинет разработчика
-
+ {/**/}
+ {/* Кабинет разработчика*/}
+ {/**/}
Трекер
diff --git a/src/components/Navigation/Navigation.jsx b/src/components/Navigation/Navigation.jsx
index eb4baac8..80d0a184 100644
--- a/src/components/Navigation/Navigation.jsx
+++ b/src/components/Navigation/Navigation.jsx
@@ -81,7 +81,7 @@ export const Navigation = () => {
{
});
}, []);
- const handler = () => {
- setIsLoggingOut(true);
+ const handler = (e) => {
+ e.preventDefault();
localStorage.clear();
dispatch(auth(false));
- setIsLoggingOut(false);
navigate("/auth");
dispatch(setProfileInfo({}));
};
diff --git a/src/pages/Auth/Auth.jsx b/src/pages/Auth/Auth.jsx
index 663be1c3..42cf790e 100644
--- a/src/pages/Auth/Auth.jsx
+++ b/src/pages/Auth/Auth.jsx
@@ -19,16 +19,16 @@ import cross from "assets/images/cross.png";
import "./auth.scss";
export const Auth = () => {
- const isAuth = useSelector(selectAuth);
- let navigate = useNavigate();
+ // const isAuth = useSelector(selectAuth);
+ // let navigate = useNavigate();
+ //
+ // const getToken = localStorage.getItem("auth_token");
- const getToken = localStorage.getItem("auth_token");
-
- useEffect(() => {
- if (isAuth || getToken) {
- navigate("/profile");
- }
- }, [getToken]);
+ // useEffect(() => {
+ // if (isAuth || getToken) {
+ // navigate("/profile");
+ // }
+ // }, [getToken]);
return (
diff --git a/src/pages/MainPage/MainPage.jsx b/src/pages/MainPage/MainPage.jsx
new file mode 100644
index 00000000..566c1921
--- /dev/null
+++ b/src/pages/MainPage/MainPage.jsx
@@ -0,0 +1,33 @@
+import React from "react";
+import { useMemo } from "react";
+import { useSelector } from "react-redux";
+
+import { selectAuth } from "@redux/outstaffingSlice";
+
+import { DeveloperPage } from "@pages/roles/DeveloperPage";
+import { GuestPage } from "@pages/roles/GuestPage";
+import { PartnerPage } from "@pages/roles/PartnerPage";
+
+export const MainPage = () => {
+ const roleId = localStorage.getItem("role_status");
+ const isAuth = useSelector(selectAuth);
+ const user_roles = {
+ developer: 4,
+ partner: 18
+ };
+
+ const CurrentRolePage = useMemo(() => getRolePage(Number(roleId)), [isAuth]);
+
+ function getRolePage(roleId) {
+ switch (roleId) {
+ case user_roles.developer:
+ return DeveloperPage;
+ case user_roles.partner:
+ return PartnerPage;
+ default:
+ return GuestPage;
+ }
+ }
+
+ return ;
+};
diff --git a/src/pages/PartnerСategories/PartnerСategories.jsx b/src/pages/PartnerСategories/PartnerСategories.jsx
index 5abf140f..8266df93 100644
--- a/src/pages/PartnerСategories/PartnerСategories.jsx
+++ b/src/pages/PartnerСategories/PartnerСategories.jsx
@@ -64,6 +64,14 @@ export const PartnerCategories = () => {
},
{
label: "Резюме",
+ renderCell: (item) => (
+
+ Резюме
+
+ )
+ },
+ {
+ label: "Отчет",
renderCell: (item) => (
{
+ return (
+
+ }
+ >
+ } />
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+
+ } />
+ } />
+ } />
+
+
+ } />
+
+ );
+};
diff --git a/src/pages/roles/GuestPage.jsx b/src/pages/roles/GuestPage.jsx
new file mode 100644
index 00000000..359dddab
--- /dev/null
+++ b/src/pages/roles/GuestPage.jsx
@@ -0,0 +1,74 @@
+import React from "react";
+import { Navigate, Route, Routes } from "react-router-dom";
+
+import { Article } from "@pages/Article/Article";
+import { Auth } from "@pages/Auth/Auth";
+import { AuthForCandidate } from "@pages/AuthForCandidate/AuthForCandidate";
+import { Blog } from "@pages/Blog/Blog";
+import CatalogSpecialists from "@pages/CatalogSpecialists/CatalogSpecialists";
+import { CompanyInfo } from "@pages/CompanyInfo/CompanyInfo";
+import { Forms } from "@pages/Forms/Forms";
+import { FrequentlyAskedQuestion } from "@pages/FrequentlyAskedQuestion/FrequentlyAskedQuestion";
+import { FrequentlyAskedQuestions } from "@pages/FrequentlyAskedQuestions/FrequentlyAskedQuestions";
+import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
+import { RegistrationForCandidate } from "@pages/RegistrationForCandidate/RegistrationForCandidate";
+import { RegistrationSetting } from "@pages/RegistrationSetting/RegistrationSetting";
+import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
+import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
+import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
+import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
+
+import { FreeDevelopers } from "@components/FreeDevelopers/FreeDevelopers";
+
+export const GuestPage = () => {
+ return (
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ }
+ />
+ } />
+ }
+ />
+ }
+ />
+ } />
+ } />
+ }
+ />
+
+ }>
+ }>
+ }
+ />
+ }
+ />
+
+ } />
+
+ } />
+
+
+ );
+};
diff --git a/src/pages/roles/PartnerPage.jsx b/src/pages/roles/PartnerPage.jsx
new file mode 100644
index 00000000..a94d9f5c
--- /dev/null
+++ b/src/pages/roles/PartnerPage.jsx
@@ -0,0 +1,65 @@
+import React from "react";
+import { Navigate, Route, Routes } from "react-router-dom";
+
+import { FormPage } from "@pages/FormPage/FormPage";
+import { Home } from "@pages/Home/Home";
+import { PartnerAddRequest } from "@pages/PartnerAddRequest/PartnerAddRequest";
+import { PartnerBid } from "@pages/PartnerBid/PartnerBid";
+import { PartnerEmployeeReport } from "@pages/PartnerEmployeeReport/PartnerEmployeeReport";
+import { PartnerEmployees } from "@pages/PartnerEmployees/PartnerEmployees";
+import { PartnerRequests } from "@pages/PartnerRequests/PartnerRequests";
+import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
+import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
+import { PartnerCategories } from "@pages/PartnerСategories/PartnerСategories";
+import { Profile } from "@pages/Profile/Profile";
+import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
+import Statistics from "@pages/Statistics/Statistics";
+import { Tracker } from "@pages/Tracker/Tracker";
+import { ViewReport } from "@pages/ViewReport/ViewReport";
+
+import { Calendar } from "@components/Calendar/Calendar";
+import { Candidate } from "@components/Candidate/Candidate";
+import { TicketFullScreen } from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
+
+export const PartnerPage = () => {
+ return (
+
+ } />
+ } />
+ } />
+
+ }
+ >
+ } />
+
+
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ } />
+ }
+ />
+ } />
+ }
+ />
+
+ } />
+
+ );
+};
diff --git a/src/redux/outstaffingSlice.js b/src/redux/outstaffingSlice.js
index be040a7b..c6becf0d 100644
--- a/src/redux/outstaffingSlice.js
+++ b/src/redux/outstaffingSlice.js
@@ -6,7 +6,7 @@ const initialState = {
filteredCandidates: null,
selectedItems: [],
currentCandidate: {},
- auth: false,
+ auth: null,
positionId: null,
profileInfo: {},
reportsDates: "",