guardian routes
This commit is contained in:
parent
727d55798a
commit
f2ad6b43bd
149
src/App.jsx
149
src/App.jsx
@ -9,51 +9,8 @@ import {
|
|||||||
} from "react-router-dom";
|
} from "react-router-dom";
|
||||||
|
|
||||||
import { getNotification } from "@redux/outstaffingSlice";
|
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 { 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 { Notification } from "@components/Notification/Notification";
|
||||||
import { ProfileCalendar } from "@components/ProfileCalendar/ProfileCalendar";
|
import { MainPage } from "@pages/MainPage/MainPage";
|
||||||
import { ReportForm } from "@components/ReportForm/ReportForm";
|
|
||||||
|
|
||||||
import "assets/fonts/stylesheet.css";
|
import "assets/fonts/stylesheet.css";
|
||||||
import "assets/global.scss";
|
import "assets/global.scss";
|
||||||
@ -64,109 +21,7 @@ const App = () => {
|
|||||||
<>
|
<>
|
||||||
<Router>
|
<Router>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route exact path="/auth" element={<Auth />} />
|
<Route path="*" element={<MainPage />} />
|
||||||
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
|
||||||
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
|
||||||
<Route exact path="/forms" element={<Forms />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/tracker-registration"
|
|
||||||
element={<TrackerRegistration />}
|
|
||||||
/>
|
|
||||||
<Route exact path="/company" element={<CompanyInfo />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/registration-setting"
|
|
||||||
element={<RegistrationSetting />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/catalog-specialists"
|
|
||||||
element={<CatalogSpecialists />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Route exact path="/worker/:id" element={<FreeDevelopers />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/tracker/task/:id"
|
|
||||||
element={<TicketFullScreen />}
|
|
||||||
></Route>
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/tracker/project/:id"
|
|
||||||
element={<ProjectTracker />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Route exact path="/auth-candidate" element={<AuthForCandidate />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/registration-candidate"
|
|
||||||
element={<RegistrationForCandidate />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Route exact path="/blog" element={<Blog />}></Route>
|
|
||||||
<Route exact path="/blog/article/:id" element={<Article />}></Route>
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/frequently-asked-questions"
|
|
||||||
element={<FrequentlyAskedQuestions />}
|
|
||||||
/>
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="/frequently-asked-question/:id"
|
|
||||||
element={<FrequentlyAskedQuestion />}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Route exact path="/candidate/:id" element={<Candidate />} />
|
|
||||||
<Route exact path="/candidate/:id/form" element={<FormPage />} />
|
|
||||||
<Route path="/:userId/calendar" element={<Calendar />} />
|
|
||||||
|
|
||||||
<Route path="/report/:id" element={<SingleReportPage />} />
|
|
||||||
|
|
||||||
<Route exact path="profile">
|
|
||||||
<Route index element={<Profile />} />
|
|
||||||
<Route exact path="catalog" element={<Home />} />
|
|
||||||
<Route exact path="calendar" element={<ProfileCalendar />} />
|
|
||||||
<Route exact path="calendar/report" element={<ReportForm />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="calendar/view/:date/:id"
|
|
||||||
element={<ViewReport />}
|
|
||||||
/>
|
|
||||||
<Route exact path="summary" element={<Summary />} />
|
|
||||||
<Route exact path="tracker" element={<Tracker />} />
|
|
||||||
<Route exact path="statistics/:id" element={<Statistics />} />
|
|
||||||
<Route exact path="payouts" element={<Payouts />} />
|
|
||||||
<Route exact path="settings" element={<PartnerSettings />} />
|
|
||||||
<Route exact path="requests" element={<PartnerRequests />} />
|
|
||||||
<Route exact path="requests-add" element={<PartnerAddRequest />} />
|
|
||||||
<Route exact path="requests-edit" element={<PartnerAddRequest />} />
|
|
||||||
<Route exact path="requests-bid" element={<PartnerBid />} />
|
|
||||||
<Route exact path="employees" element={<PartnerCategories />} />
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="employees/report/:uuid"
|
|
||||||
element={<PartnerEmployeeReport />}
|
|
||||||
/>
|
|
||||||
<Route exact path="treaties" element={<PartnerTreaties />} />
|
|
||||||
<Route exact path="quiz">
|
|
||||||
<Route index element={<QuizPage />} />
|
|
||||||
<Route exact path="test/:uuid" element={<PassingTests />} />
|
|
||||||
<Route exact path="report/:uuid" element={<QuizReportPage />} />
|
|
||||||
</Route>
|
|
||||||
|
|
||||||
<Route
|
|
||||||
exact
|
|
||||||
path="categories/employees"
|
|
||||||
element={<PartnerEmployees />}
|
|
||||||
/>
|
|
||||||
</Route>
|
|
||||||
|
|
||||||
<Route exact path="profile-candidate/:id">
|
|
||||||
<Route index element={<ProfileCandidate />} />
|
|
||||||
</Route>
|
|
||||||
|
|
||||||
<Route path="*" element={<Navigate to="/auth" replace />} />
|
|
||||||
</Routes>
|
</Routes>
|
||||||
</Router>
|
</Router>
|
||||||
{notification.show && <Notification />}
|
{notification.show && <Notification />}
|
||||||
|
@ -41,7 +41,7 @@ export const apiRequest = (
|
|||||||
if (response.data?.redirect || response.status === 401) {
|
if (response.data?.redirect || response.status === 401) {
|
||||||
window.location.replace("/auth");
|
window.location.replace("/auth");
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
// dispatch(auth(false));
|
store.dispatch(auth(false));
|
||||||
store.dispatch(setProfileInfo({}));
|
store.dispatch(setProfileInfo({}));
|
||||||
}
|
}
|
||||||
return resolve(response);
|
return resolve(response);
|
||||||
|
@ -70,6 +70,7 @@ export const AuthBox = ({ title }) => {
|
|||||||
dispatch(setUserInfo(res));
|
dispatch(setUserInfo(res));
|
||||||
dispatch(loading(false));
|
dispatch(loading(false));
|
||||||
dispatch(setRole("ROLE_PARTNER"));
|
dispatch(setRole("ROLE_PARTNER"));
|
||||||
|
navigate("/profile");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,9 @@ export const AuthHeader = () => {
|
|||||||
<span>Главная</span>
|
<span>Главная</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
{/*<li>*/}
|
||||||
<NavLink to={"/profile"}>Кабинет разработчика</NavLink>
|
{/* <NavLink to={"/profile"}>Кабинет разработчика</NavLink>*/}
|
||||||
</li>
|
{/*</li>*/}
|
||||||
<li>
|
<li>
|
||||||
<NavLink to={"/tracker-intro"}>Трекер</NavLink>
|
<NavLink to={"/tracker-intro"}>Трекер</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
@ -81,7 +81,7 @@ export const Navigation = () => {
|
|||||||
<NavLink
|
<NavLink
|
||||||
key={index}
|
key={index}
|
||||||
end
|
end
|
||||||
to={link.path === "/quiz" ? link.path : `/profile${link.path}`}
|
to={`/profile${link.path}`}
|
||||||
className={
|
className={
|
||||||
currentPath.includes(link.path) ||
|
currentPath.includes(link.path) ||
|
||||||
currentPath.includes(link.active)
|
currentPath.includes(link.active)
|
||||||
|
@ -91,11 +91,10 @@ export const ProfileHeader = () => {
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handler = () => {
|
const handler = (e) => {
|
||||||
setIsLoggingOut(true);
|
e.preventDefault()
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
dispatch(auth(false));
|
dispatch(auth(false));
|
||||||
setIsLoggingOut(false);
|
|
||||||
navigate("/auth");
|
navigate("/auth");
|
||||||
dispatch(setProfileInfo({}));
|
dispatch(setProfileInfo({}));
|
||||||
};
|
};
|
||||||
|
@ -19,16 +19,16 @@ import cross from "assets/images/cross.png";
|
|||||||
import "./auth.scss";
|
import "./auth.scss";
|
||||||
|
|
||||||
export const Auth = () => {
|
export const Auth = () => {
|
||||||
const isAuth = useSelector(selectAuth);
|
// const isAuth = useSelector(selectAuth);
|
||||||
let navigate = useNavigate();
|
// let navigate = useNavigate();
|
||||||
|
//
|
||||||
|
// const getToken = localStorage.getItem("auth_token");
|
||||||
|
|
||||||
const getToken = localStorage.getItem("auth_token");
|
// useEffect(() => {
|
||||||
|
// if (isAuth || getToken) {
|
||||||
useEffect(() => {
|
// navigate("/profile");
|
||||||
if (isAuth || getToken) {
|
// }
|
||||||
navigate("/profile");
|
// }, [getToken]);
|
||||||
}
|
|
||||||
}, [getToken]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="auth-partners">
|
<section className="auth-partners">
|
||||||
|
36
src/pages/MainPage/MainPage.jsx
Normal file
36
src/pages/MainPage/MainPage.jsx
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { useMemo } from "react";
|
||||||
|
import { PartnerPage } from "@pages/roles/PartnerPage";
|
||||||
|
import { DeveloperPage } from "@pages/roles/DeveloperPage";
|
||||||
|
import { GuestPage } from "@pages/roles/GuestPage";
|
||||||
|
import { useSelector } from "react-redux";
|
||||||
|
import { selectAuth } from "@redux/outstaffingSlice";
|
||||||
|
|
||||||
|
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(
|
||||||
|
<CurrentRolePage />
|
||||||
|
)
|
||||||
|
}
|
@ -64,6 +64,17 @@ export const PartnerCategories = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Резюме",
|
label: "Резюме",
|
||||||
|
renderCell: (item) => (
|
||||||
|
<Link
|
||||||
|
className="table__link"
|
||||||
|
to={`/candidate/${item.user_id}`}
|
||||||
|
>
|
||||||
|
Резюме
|
||||||
|
</Link>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Отчет",
|
||||||
renderCell: (item) => (
|
renderCell: (item) => (
|
||||||
<Link
|
<Link
|
||||||
className="table__link"
|
className="table__link"
|
||||||
|
57
src/pages/roles/DeveloperPage.jsx
Normal file
57
src/pages/roles/DeveloperPage.jsx
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Navigate, Route, Routes } from "react-router-dom";;
|
||||||
|
import { Profile } from "@pages/Profile/Profile";
|
||||||
|
import { ProfileCalendar } from "@components/ProfileCalendar/ProfileCalendar";
|
||||||
|
import { ReportForm } from "@components/ReportForm/ReportForm";
|
||||||
|
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
||||||
|
import { Summary } from "@pages/Summary/Summary";
|
||||||
|
import { Tracker } from "@pages/Tracker/Tracker";
|
||||||
|
import Statistics from "@pages/Statistics/Statistics";
|
||||||
|
import { Payouts } from "@pages/Payouts/Payouts";
|
||||||
|
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
||||||
|
import { QuizPage } from "@pages/Quiz/QuizPage";
|
||||||
|
import { PassingTests } from "@pages/Quiz/PassingTests";
|
||||||
|
import { QuizReportPage } from "@pages/Quiz/QuizReportPage";
|
||||||
|
import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
|
||||||
|
import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
|
||||||
|
import { TicketFullScreen } from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
|
||||||
|
|
||||||
|
export const DeveloperPage = () => {
|
||||||
|
return(
|
||||||
|
<Routes>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/tracker/task/:id"
|
||||||
|
element={<TicketFullScreen />}
|
||||||
|
></Route>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/tracker/project/:id"
|
||||||
|
element={<ProjectTracker />}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Route exact path="profile">
|
||||||
|
<Route index element={<Profile />} />
|
||||||
|
<Route exact path="calendar" element={<ProfileCalendar />} />
|
||||||
|
<Route exact path="calendar/report" element={<ReportForm />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="calendar/view/:date/:id"
|
||||||
|
element={<ViewReport />}
|
||||||
|
/>
|
||||||
|
<Route exact path="summary" element={<Summary />} />
|
||||||
|
<Route exact path="tracker" element={<Tracker />} />
|
||||||
|
<Route exact path="statistics/:id" element={<Statistics />} />
|
||||||
|
<Route exact path="payouts" element={<Payouts />} />
|
||||||
|
<Route exact path="settings" element={<PartnerSettings />} />
|
||||||
|
<Route exact path="treaties" element={<PartnerTreaties />} />
|
||||||
|
<Route exact path="quiz">
|
||||||
|
<Route index element={<QuizPage />} />
|
||||||
|
<Route exact path="test/:uuid" element={<PassingTests />} />
|
||||||
|
<Route exact path="report/:uuid" element={<QuizReportPage />} />
|
||||||
|
</Route>
|
||||||
|
</Route>
|
||||||
|
<Route path="*" element={<Navigate to="/profile" replace />} />
|
||||||
|
</Routes>
|
||||||
|
)
|
||||||
|
}
|
72
src/pages/roles/GuestPage.jsx
Normal file
72
src/pages/roles/GuestPage.jsx
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Navigate, Route, Routes } from "react-router-dom";
|
||||||
|
import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
|
||||||
|
import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
|
||||||
|
import { Forms } from "@pages/Forms/Forms";
|
||||||
|
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
||||||
|
import { CompanyInfo } from "@pages/CompanyInfo/CompanyInfo";
|
||||||
|
import { RegistrationSetting } from "@pages/RegistrationSetting/RegistrationSetting";
|
||||||
|
import CatalogSpecialists from "@pages/CatalogSpecialists/CatalogSpecialists";
|
||||||
|
import { FreeDevelopers } from "@components/FreeDevelopers/FreeDevelopers";
|
||||||
|
import { AuthForCandidate } from "@pages/AuthForCandidate/AuthForCandidate";
|
||||||
|
import { RegistrationForCandidate } from "@pages/RegistrationForCandidate/RegistrationForCandidate";
|
||||||
|
import { FrequentlyAskedQuestions } from "@pages/FrequentlyAskedQuestions/FrequentlyAskedQuestions";
|
||||||
|
import { Blog } from "@pages/Blog/Blog";
|
||||||
|
import { Article } from "@pages/Article/Article";
|
||||||
|
import { FrequentlyAskedQuestion } from "@pages/FrequentlyAskedQuestion/FrequentlyAskedQuestion";
|
||||||
|
import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
|
||||||
|
import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
|
||||||
|
import { Auth } from "@pages/Auth/Auth";
|
||||||
|
|
||||||
|
export const GuestPage = () => {
|
||||||
|
return(
|
||||||
|
<Routes>
|
||||||
|
<Route exact path="/auth" element={<Auth />} />
|
||||||
|
<Route path="*" element={<Navigate to="/auth" replace />} />
|
||||||
|
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
||||||
|
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
||||||
|
<Route exact path="/forms" element={<Forms />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/tracker-registration"
|
||||||
|
element={<TrackerRegistration />}
|
||||||
|
/>
|
||||||
|
<Route exact path="/company" element={<CompanyInfo />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/registration-setting"
|
||||||
|
element={<RegistrationSetting />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/catalog-specialists"
|
||||||
|
element={<CatalogSpecialists />}
|
||||||
|
/>
|
||||||
|
<Route exact path="/worker/:id" element={<FreeDevelopers />} />
|
||||||
|
<Route exact path="/auth-candidate" element={<AuthForCandidate />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/registration-candidate"
|
||||||
|
element={<RegistrationForCandidate />}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Route exact path="/blog" element={<Blog />}></Route>
|
||||||
|
<Route exact path="/blog/article/:id" element={<Article />}></Route>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/frequently-asked-questions"
|
||||||
|
element={<FrequentlyAskedQuestions />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/frequently-asked-question/:id"
|
||||||
|
element={<FrequentlyAskedQuestion />}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Route path="/report/:id" element={<SingleReportPage />} />
|
||||||
|
<Route exact path="profile-candidate/:id">
|
||||||
|
<Route index element={<ProfileCandidate />} />
|
||||||
|
</Route>
|
||||||
|
</Routes>
|
||||||
|
)
|
||||||
|
}
|
71
src/pages/roles/PartnerPage.jsx
Normal file
71
src/pages/roles/PartnerPage.jsx
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Navigate, Route, Routes } from "react-router-dom";
|
||||||
|
import { Candidate } from "@components/Candidate/Candidate";
|
||||||
|
import { FormPage } from "@pages/FormPage/FormPage";
|
||||||
|
import { Calendar } from "@components/Calendar/Calendar";
|
||||||
|
import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
|
||||||
|
import { TicketFullScreen } from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
|
||||||
|
import { Profile } from "@pages/Profile/Profile";
|
||||||
|
import { Home } from "@pages/Home/Home";
|
||||||
|
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
||||||
|
import { Tracker } from "@pages/Tracker/Tracker";
|
||||||
|
import Statistics from "@pages/Statistics/Statistics";
|
||||||
|
import { PartnerRequests } from "@pages/PartnerRequests/PartnerRequests";
|
||||||
|
import { PartnerAddRequest } from "@pages/PartnerAddRequest/PartnerAddRequest";
|
||||||
|
import { PartnerBid } from "@pages/PartnerBid/PartnerBid";
|
||||||
|
import { PartnerCategories } from "@pages/PartnerСategories/PartnerСategories";
|
||||||
|
import { PartnerEmployeeReport } from "@pages/PartnerEmployeeReport/PartnerEmployeeReport";
|
||||||
|
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
||||||
|
import { PartnerEmployees } from "@pages/PartnerEmployees/PartnerEmployees";
|
||||||
|
import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
|
||||||
|
|
||||||
|
export const PartnerPage = () => {
|
||||||
|
return(
|
||||||
|
<Routes>
|
||||||
|
<Route exact path="/candidate/:id" element={<Candidate />} />
|
||||||
|
<Route exact path="/candidate/:id/form" element={<FormPage />} />
|
||||||
|
<Route path="/:userId/calendar" element={<Calendar />} />
|
||||||
|
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/tracker/task/:id"
|
||||||
|
element={<TicketFullScreen />}
|
||||||
|
></Route>
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="/tracker/project/:id"
|
||||||
|
element={<ProjectTracker />}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Route exact path="profile">
|
||||||
|
<Route index element={<Profile />} />
|
||||||
|
<Route exact path="catalog" element={<Home />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="calendar/view/:date/:id"
|
||||||
|
element={<ViewReport />}
|
||||||
|
/>
|
||||||
|
<Route exact path="tracker" element={<Tracker />} />
|
||||||
|
<Route exact path="statistics/:id" element={<Statistics />} />
|
||||||
|
<Route exact path="settings" element={<PartnerSettings />} />
|
||||||
|
<Route exact path="requests" element={<PartnerRequests />} />
|
||||||
|
<Route exact path="requests-add" element={<PartnerAddRequest />} />
|
||||||
|
<Route exact path="requests-edit" element={<PartnerAddRequest />} />
|
||||||
|
<Route exact path="requests-bid" element={<PartnerBid />} />
|
||||||
|
<Route exact path="employees" element={<PartnerCategories />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="employees/report/:uuid"
|
||||||
|
element={<PartnerEmployeeReport />}
|
||||||
|
/>
|
||||||
|
<Route exact path="treaties" element={<PartnerTreaties />} />
|
||||||
|
<Route
|
||||||
|
exact
|
||||||
|
path="categories/employees"
|
||||||
|
element={<PartnerEmployees />}
|
||||||
|
/>
|
||||||
|
</Route>
|
||||||
|
<Route path="*" element={<Navigate to="/profile" replace />} />
|
||||||
|
</Routes>
|
||||||
|
)
|
||||||
|
}
|
@ -6,7 +6,7 @@ const initialState = {
|
|||||||
filteredCandidates: null,
|
filteredCandidates: null,
|
||||||
selectedItems: [],
|
selectedItems: [],
|
||||||
currentCandidate: {},
|
currentCandidate: {},
|
||||||
auth: false,
|
auth: null,
|
||||||
positionId: null,
|
positionId: null,
|
||||||
profileInfo: {},
|
profileInfo: {},
|
||||||
reportsDates: "",
|
reportsDates: "",
|
||||||
|
Loading…
Reference in New Issue
Block a user