Compare commits
4 Commits
f1a692f6c5
...
4603e2dc8b
Author | SHA1 | Date | |
---|---|---|---|
|
4603e2dc8b | ||
|
23e8c5c683 | ||
|
46c91cfbff | ||
|
4d148cc57d |
28
src/App.jsx
28
src/App.jsx
@ -24,6 +24,7 @@ import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
|
|||||||
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
||||||
import { PartnerCategories } from "@pages/PartnerСategories/PartnerСategories";
|
import { PartnerCategories } from "@pages/PartnerСategories/PartnerСategories";
|
||||||
import { Payouts } from "@pages/Payouts/Payouts";
|
import { Payouts } from "@pages/Payouts/Payouts";
|
||||||
|
import { Forms } from "@pages/Forms/Forms";
|
||||||
import { Profile } from "@pages/Profile/Profile";
|
import { Profile } from "@pages/Profile/Profile";
|
||||||
import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
|
import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
|
||||||
import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
|
import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
|
||||||
@ -39,23 +40,23 @@ import { TrackerAuth } from "@pages/TrackerAuth/TrackerAuth";
|
|||||||
import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
|
import { TrackerIntro } from "@pages/TrackerIntro/TrackerIntro";
|
||||||
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
import { TrackerRegistration } from "@pages/TrackerRegistration/TrackerRegistration";
|
||||||
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
||||||
|
import { Article } from "@pages/Article/Article";
|
||||||
|
import { Auth } from "@pages/Auth/Auth";
|
||||||
|
import { Blog } from "@pages/Blog/Blog";
|
||||||
|
import { FormPage } from "@pages/FormPage/FormPage";
|
||||||
|
import { Home } from "@pages/Home/Home";
|
||||||
|
import { SingleReportPage } from "@pages/SingleReportPage/SingleReportPage";
|
||||||
|
|
||||||
import { TicketFullScreen } from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
|
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 { ProfileCalendar } from "@components/ProfileCalendar/ProfileCalendar";
|
||||||
|
import { Calendar } from "@components/Calendar/Calendar";
|
||||||
|
import { Candidate } from "@components/Candidate/Candidate";
|
||||||
|
import { FreeDevelopers } from "@components/FreeDevelopers/FreeDevelopers";
|
||||||
|
import { ReportForm } from "@components/ReportForm/ReportForm";
|
||||||
|
|
||||||
import "./assets/fonts/stylesheet.css";
|
import "assets/fonts/stylesheet.css";
|
||||||
import "./assets/global.scss";
|
import "assets/global.scss";
|
||||||
import Calendar from "./components/Calendar/Calendar";
|
|
||||||
import Candidate from "./components/Candidate/Candidate";
|
|
||||||
import FreeDevelopers from "./components/FreeDevelopers/FreeDevelopers";
|
|
||||||
import ReportForm from "./components/ReportForm/ReportForm";
|
|
||||||
import Article from "./pages/Article/Article";
|
|
||||||
import Auth from "./pages/Auth/Auth";
|
|
||||||
import Blog from "./pages/Blog/Blog";
|
|
||||||
import FormPage from "./pages/FormPage/FormPage";
|
|
||||||
import Home from "./pages/Home/Home";
|
|
||||||
import SingleReportPage from "./pages/SingleReportPage/SingleReportPage";
|
|
||||||
|
|
||||||
const App = () => {
|
const App = () => {
|
||||||
const notification = useSelector(getNotification);
|
const notification = useSelector(getNotification);
|
||||||
@ -66,6 +67,7 @@ const App = () => {
|
|||||||
<Route exact path="/auth" element={<Auth />} />
|
<Route exact path="/auth" element={<Auth />} />
|
||||||
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
<Route exact path="/tracker-intro" element={<TrackerIntro />} />
|
||||||
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
<Route exact path="/tracker-auth" element={<TrackerAuth />} />
|
||||||
|
<Route exact path="/forms" element={<Forms />} />
|
||||||
<Route
|
<Route
|
||||||
exact
|
exact
|
||||||
path="/tracker-registration"
|
path="/tracker-registration"
|
||||||
|
@ -15,7 +15,7 @@ import { currentMonth } from "../../utils/calendarHelper";
|
|||||||
import CalendarComponent from "./CalendarComponent";
|
import CalendarComponent from "./CalendarComponent";
|
||||||
import "./calendar.scss";
|
import "./calendar.scss";
|
||||||
|
|
||||||
const Calendar = () => {
|
export const Calendar = () => {
|
||||||
if (localStorage.getItem("role_status") !== "18") {
|
if (localStorage.getItem("role_status") !== "18") {
|
||||||
return <Navigate to="/profile" replace />;
|
return <Navigate to="/profile" replace />;
|
||||||
}
|
}
|
||||||
@ -84,5 +84,3 @@ const Calendar = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Calendar;
|
|
||||||
|
@ -28,7 +28,7 @@ import rectangle from "assets/images/rectangle_secondPage.png";
|
|||||||
|
|
||||||
import "./candidate.scss";
|
import "./candidate.scss";
|
||||||
|
|
||||||
const Candidate = () => {
|
export const Candidate = () => {
|
||||||
if (localStorage.getItem("role_status") !== "18") {
|
if (localStorage.getItem("role_status") !== "18") {
|
||||||
return <Navigate to="/profile" replace />;
|
return <Navigate to="/profile" replace />;
|
||||||
}
|
}
|
||||||
@ -238,5 +238,3 @@ const Candidate = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Candidate;
|
|
||||||
|
@ -51,5 +51,3 @@ export const AuthHeader = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default AuthHeader;
|
|
||||||
|
@ -3,7 +3,7 @@ import { Link } from "react-router-dom";
|
|||||||
|
|
||||||
import { scrollToForm } from "@utils/helper";
|
import { scrollToForm } from "@utils/helper";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import BaseButton from "@components/Common/BaseButton/BaseButton";
|
import BaseButton from "@components/Common/BaseButton/BaseButton";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
|
@ -15,6 +15,7 @@ import {
|
|||||||
caseOfNum,
|
caseOfNum,
|
||||||
getCorrectRequestDate,
|
getCorrectRequestDate,
|
||||||
getToken,
|
getToken,
|
||||||
|
removeLast,
|
||||||
urlForLocal
|
urlForLocal
|
||||||
} from "@utils/helper";
|
} from "@utils/helper";
|
||||||
|
|
||||||
@ -630,14 +631,6 @@ export const TicketFullScreen = () => {
|
|||||||
<img src={tasks} alt="img" />
|
<img src={tasks} alt="img" />
|
||||||
<p>Все мои задачи</p>
|
<p>Все мои задачи</p>
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
|
||||||
to="/profile/tracker"
|
|
||||||
className="tab"
|
|
||||||
onClick={() => toggleTabs(3)}
|
|
||||||
>
|
|
||||||
<img src={archive} alt="img" />
|
|
||||||
<p>Архив</p>
|
|
||||||
</Link>
|
|
||||||
</div>
|
</div>
|
||||||
{loader ? (
|
{loader ? (
|
||||||
<Loader />
|
<Loader />
|
||||||
@ -812,14 +805,14 @@ export const TicketFullScreen = () => {
|
|||||||
<div className="workers fullscreen-workers">
|
<div className="workers fullscreen-workers">
|
||||||
<div className="workers_box task__info">
|
<div className="workers_box task__info">
|
||||||
<div className="workers__creator">
|
<div className="workers__creator">
|
||||||
Создатель: <p>{taskInfo.user?.fio}</p>
|
Создатель: <p>{removeLast(taskInfo.user?.fio)}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{taskInfo.executor ? (
|
{taskInfo.executor ? (
|
||||||
<>
|
<>
|
||||||
<h5>Исполнитель: </h5>
|
<h5>Исполнитель: </h5>
|
||||||
<div className="executor">
|
<div className="executor">
|
||||||
<p>{taskInfo.executor.fio}</p>
|
<p>{removeLast(taskInfo.executor.fio)}</p>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
taskInfo.executor?.avatar
|
taskInfo.executor?.avatar
|
||||||
@ -858,7 +851,7 @@ export const TicketFullScreen = () => {
|
|||||||
key={person.user_id}
|
key={person.user_id}
|
||||||
onClick={() => taskExecutor(person)}
|
onClick={() => taskExecutor(person)}
|
||||||
>
|
>
|
||||||
<span>{person.user.fio}</span>
|
<span>{removeLast(person.user.fio)}</span>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
person.user?.avatar
|
person.user?.avatar
|
||||||
@ -881,7 +874,7 @@ export const TicketFullScreen = () => {
|
|||||||
{taskInfo.taskUsers.map((member) => {
|
{taskInfo.taskUsers.map((member) => {
|
||||||
return (
|
return (
|
||||||
<div className="worker" key={member.user_id}>
|
<div className="worker" key={member.user_id}>
|
||||||
<p>{member.fio}</p>
|
<p>{removeLast(member.fio)}</p>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
member?.avatar
|
member?.avatar
|
||||||
@ -924,7 +917,7 @@ export const TicketFullScreen = () => {
|
|||||||
key={person.user_id}
|
key={person.user_id}
|
||||||
onClick={() => addMember(person)}
|
onClick={() => addMember(person)}
|
||||||
>
|
>
|
||||||
<span>{person.user.fio}</span>
|
<span>{removeLast(person.user.fio)}</span>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
person.user?.avatar
|
person.user?.avatar
|
||||||
|
@ -713,7 +713,7 @@ export const TrackerModal = ({
|
|||||||
src={urlForLocal(selectedExecutorTask.user.avatar)}
|
src={urlForLocal(selectedExecutorTask.user.avatar)}
|
||||||
alt="avatar"
|
alt="avatar"
|
||||||
/>
|
/>
|
||||||
<span>{selectedExecutorTask.user.fio}</span>
|
<span>{removeLast(selectedExecutorTask.user.fio)}</span>
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<span>{selectedExecutorTask}</span>
|
<span>{selectedExecutorTask}</span>
|
||||||
|
@ -29,10 +29,10 @@ export const Navigation = () => {
|
|||||||
path: "/tracker",
|
path: "/tracker",
|
||||||
name: "Трекер"
|
name: "Трекер"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/payouts",
|
// path: "/payouts",
|
||||||
name: "Выплаты"
|
// name: "Выплаты"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "/quiz",
|
path: "/quiz",
|
||||||
name: "Тесты"
|
name: "Тесты"
|
||||||
@ -61,10 +61,10 @@ export const Navigation = () => {
|
|||||||
path: "/tracker",
|
path: "/tracker",
|
||||||
name: "Трекер"
|
name: "Трекер"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/treaties",
|
// path: "/treaties",
|
||||||
name: "Договоры"
|
// name: "Договоры"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "/settings",
|
path: "/settings",
|
||||||
name: "Настройки"
|
name: "Настройки"
|
||||||
@ -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={link.path === "/quiz" ? link.path : `/profile${link.path}`}
|
||||||
className={
|
className={
|
||||||
currentPath.includes(link.path) ||
|
currentPath.includes(link.path) ||
|
||||||
currentPath.includes(link.active)
|
currentPath.includes(link.active)
|
||||||
|
@ -286,15 +286,15 @@ export const ProfileCalendarComponent = React.memo(
|
|||||||
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
|
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
|
||||||
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
|
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
|
||||||
: activePeriod
|
: activePeriod
|
||||||
? "Выберите диапазон на календаре"
|
? "Выберите диапазон на календаре"
|
||||||
: "Выбрать диапазон"}
|
: "Выбрать диапазон"}
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
{totalRangeHours
|
{totalRangeHours
|
||||||
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
|
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
|
||||||
: endDate
|
: endDate
|
||||||
? "0 часов"
|
? "0 часов"
|
||||||
: ""}
|
: ""}
|
||||||
</span>
|
</span>
|
||||||
{endDate && (
|
{endDate && (
|
||||||
<BaseButton
|
<BaseButton
|
||||||
|
@ -39,10 +39,10 @@ export const ProfileHeader = () => {
|
|||||||
path: "/tracker",
|
path: "/tracker",
|
||||||
name: "Трекер"
|
name: "Трекер"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/payouts",
|
// path: "/payouts",
|
||||||
name: "Выплаты"
|
// name: "Выплаты"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "/quiz",
|
path: "/quiz",
|
||||||
name: "Тесты"
|
name: "Тесты"
|
||||||
@ -69,10 +69,10 @@ export const ProfileHeader = () => {
|
|||||||
path: "/tracker",
|
path: "/tracker",
|
||||||
name: "Трекер"
|
name: "Трекер"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "/treaties",
|
// path: "/treaties",
|
||||||
name: "Договоры"
|
// name: "Договоры"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "/settings",
|
path: "/settings",
|
||||||
name: "Настройки"
|
name: "Настройки"
|
||||||
@ -170,7 +170,7 @@ export const ProfileHeader = () => {
|
|||||||
<NavLink
|
<NavLink
|
||||||
key={index}
|
key={index}
|
||||||
end
|
end
|
||||||
to={link.path === "/Quiz" ? link.path : `/profile${link.path}`}
|
to={link.path === "/quiz" ? link.path : `/profile${link.path}`}
|
||||||
className={currentPath.includes(link.path) ? "active" : ""}
|
className={currentPath.includes(link.path) ? "active" : ""}
|
||||||
>
|
>
|
||||||
{link.name}
|
{link.name}
|
||||||
|
@ -32,7 +32,7 @@ import "./reportForm.scss";
|
|||||||
|
|
||||||
registerLocale("ru", ru);
|
registerLocale("ru", ru);
|
||||||
|
|
||||||
const ReportForm = () => {
|
export const ReportForm = () => {
|
||||||
if (localStorage.getItem("role_status") === "18") {
|
if (localStorage.getItem("role_status") === "18") {
|
||||||
return <Navigate to="/profile" replace />;
|
return <Navigate to="/profile" replace />;
|
||||||
}
|
}
|
||||||
@ -456,5 +456,3 @@ const ReportForm = () => {
|
|||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ReportForm;
|
|
||||||
|
@ -47,23 +47,23 @@ export const SideBar = () => {
|
|||||||
</div>
|
</div>
|
||||||
<ul className="auth-body__navigation">
|
<ul className="auth-body__navigation">
|
||||||
<li>
|
<li>
|
||||||
<Link to={"/auth"}>Вход для партнеров</Link>
|
<Link to={"/auth"}>Вход</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to={"/profile"}>Кабинет разработчика</Link>
|
<Link to={"/profile"}>Личный кабинет</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to={"/tracker-intro"}>Трекер</Link>
|
<Link to={"/tracker-intro"}>Трекер</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to={"/Quiz"}>Тесты</Link>
|
<Link to={"/quiz"}>Тесты</Link>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<Link to={"/forms"}>Формы</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#">Школа</a>
|
<a href="#">Школа</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a href="#">Отрасли</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#">Контакты</a>
|
<a href="#">Контакты</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -3,7 +3,7 @@ import { CKEditor } from "@ckeditor/ckeditor5-react";
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import { getCorrectDate } from "@utils/calendarHelper";
|
import { getCorrectDate } from "@utils/calendarHelper";
|
||||||
import { urlForLocal } from "@utils/helper";
|
import { removeLast, urlForLocal } from "@utils/helper";
|
||||||
|
|
||||||
import { apiRequest } from "@api/request";
|
import { apiRequest } from "@api/request";
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ export const TrackerTaskComment = ({
|
|||||||
}
|
}
|
||||||
alt="avatar"
|
alt="avatar"
|
||||||
/>
|
/>
|
||||||
<p>{comment.user.fio}</p>
|
<p>{removeLast(comment.user.fio)}</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="comments__list__item__date">
|
<div className="comments__list__item__date">
|
||||||
<span>{getCorrectDate(comment.created_at)}</span>
|
<span>{getCorrectDate(comment.created_at)}</span>
|
||||||
|
@ -32,7 +32,7 @@ export const HeaderPageTestsQuiz = ({ isVisibilityButton }) => {
|
|||||||
</div>
|
</div>
|
||||||
{isVisibilityButton && (
|
{isVisibilityButton && (
|
||||||
<Link
|
<Link
|
||||||
to={"/Quiz/instruction"}
|
to={"/quiz/instruction"}
|
||||||
className="quiz-btn quiz-btn_restriction"
|
className="quiz-btn quiz-btn_restriction"
|
||||||
>
|
>
|
||||||
Пройти
|
Пройти
|
||||||
|
@ -44,7 +44,7 @@ export const MyTestsQuiz = ({ listTests }) => {
|
|||||||
</h3>
|
</h3>
|
||||||
<div className="item-test__body test-data">
|
<div className="item-test__body test-data">
|
||||||
<Link
|
<Link
|
||||||
to={"/Quiz/interjacent"}
|
to={"/quiz/interjacent"}
|
||||||
className="quiz-btn"
|
className="quiz-btn"
|
||||||
onClick={() => recordSelectedTest(item)}
|
onClick={() => recordSelectedTest(item)}
|
||||||
>
|
>
|
||||||
|
@ -58,7 +58,7 @@ export const TaskQuiz = ({ timer }) => {
|
|||||||
text: "Тест успешно пройден",
|
text: "Тест успешно пройден",
|
||||||
type: "success"
|
type: "success"
|
||||||
});
|
});
|
||||||
navigate("/Quiz");
|
navigate("/quiz");
|
||||||
// if (String(res?.status)[0] !== "2") {
|
// if (String(res?.status)[0] !== "2") {
|
||||||
// showNotification({
|
// showNotification({
|
||||||
// show: true,
|
// show: true,
|
@ -2,7 +2,7 @@ import React, { useState } from "react";
|
|||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
import CardArticle from "@components/CardArticle/CardArticle";
|
import CardArticle from "@components/CardArticle/CardArticle";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
@ -5,10 +5,9 @@ import { useNavigate } from "react-router-dom";
|
|||||||
import { selectAuth } from "@redux/outstaffingSlice";
|
import { selectAuth } from "@redux/outstaffingSlice";
|
||||||
|
|
||||||
import { AuthBox } from "@components/AuthBox/AuthBox";
|
import { AuthBox } from "@components/AuthBox/AuthBox";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
import SliderWorkers from "@components/SliderWorkers/SliderWorkers";
|
|
||||||
|
|
||||||
import arrow from "assets/icons/arrows/arrow__login_page.png";
|
import arrow from "assets/icons/arrows/arrow__login_page.png";
|
||||||
import text from "assets/images/Body_Text.png";
|
import text from "assets/images/Body_Text.png";
|
||||||
@ -19,7 +18,7 @@ import cross from "assets/images/cross.png";
|
|||||||
|
|
||||||
import "./auth.scss";
|
import "./auth.scss";
|
||||||
|
|
||||||
const Auth = () => {
|
export const Auth = () => {
|
||||||
const isAuth = useSelector(selectAuth);
|
const isAuth = useSelector(selectAuth);
|
||||||
let navigate = useNavigate();
|
let navigate = useNavigate();
|
||||||
|
|
||||||
@ -34,11 +33,6 @@ const Auth = () => {
|
|||||||
return (
|
return (
|
||||||
<section className="auth-partners">
|
<section className="auth-partners">
|
||||||
<AuthHeader />
|
<AuthHeader />
|
||||||
<SliderWorkers
|
|
||||||
title={"Свободные разработчики"}
|
|
||||||
titleInfo={"для Вашей команды"}
|
|
||||||
subTitle={true}
|
|
||||||
/>
|
|
||||||
<div className="auth-partners__background">
|
<div className="auth-partners__background">
|
||||||
<img className="auth-partners__vector" src={vector} alt="" />
|
<img className="auth-partners__vector" src={vector} alt="" />
|
||||||
<img className="auth-partners__vector-black" src={vectorBlack} alt="" />
|
<img className="auth-partners__vector-black" src={vectorBlack} alt="" />
|
||||||
@ -98,5 +92,3 @@ const Auth = () => {
|
|||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Auth;
|
|
||||||
|
@ -6,7 +6,7 @@ import { selectAuth } from "@redux/outstaffingSlice";
|
|||||||
|
|
||||||
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
||||||
import CategoriesItem from "@components/CategoriesItem/CategoriesItem";
|
import CategoriesItem from "@components/CategoriesItem/CategoriesItem";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import ModalResetPassword from "@components/Modal/ModalResetPassword/ModalResetPassword";
|
import ModalResetPassword from "@components/Modal/ModalResetPassword/ModalResetPassword";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import CardArticle from "@components/CardArticle/CardArticle";
|
import CardArticle from "@components/CardArticle/CardArticle";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
@ -2,7 +2,7 @@ import React, { useState } from "react";
|
|||||||
|
|
||||||
import CatalogPersonCard from "@components/CatalogPersonCard/CatalogPersonCard";
|
import CatalogPersonCard from "@components/CatalogPersonCard/CatalogPersonCard";
|
||||||
import CategoriesItem from "@components/CategoriesItem/CategoriesItem";
|
import CategoriesItem from "@components/CategoriesItem/CategoriesItem";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import rectangle from "assets/images/rectangle_secondPage.png";
|
|||||||
|
|
||||||
import "./formPage.scss";
|
import "./formPage.scss";
|
||||||
|
|
||||||
const FormPage = () => {
|
export const FormPage = () => {
|
||||||
if (localStorage.getItem("role_status") !== "18") {
|
if (localStorage.getItem("role_status") !== "18") {
|
||||||
return <Navigate to="/profile" replace />;
|
return <Navigate to="/profile" replace />;
|
||||||
}
|
}
|
||||||
@ -101,5 +101,3 @@ const FormPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default FormPage;
|
|
||||||
|
21
src/pages/Forms/Forms.jsx
Normal file
21
src/pages/Forms/Forms.jsx
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
|
||||||
|
import "./forms.scss";
|
||||||
|
|
||||||
|
export const Forms = () => {
|
||||||
|
return (
|
||||||
|
<div className="forms">
|
||||||
|
<AuthHeader />
|
||||||
|
<SideBar />
|
||||||
|
<div className="container">
|
||||||
|
<br />
|
||||||
|
<h1>Здесь будут формы</h1>
|
||||||
|
</div>
|
||||||
|
<Footer />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
13
src/pages/Forms/Forms.scss
Normal file
13
src/pages/Forms/Forms.scss
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
.forms {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
|
background: #f1f1f1;
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 1160px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { useNavigate, useParams } from "react-router";
|
import { useNavigate, useParams } from "react-router";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import { FrequentlyAskedQuestionsItem } from "@components/FrequentlyAskedQuestionsItem/FrequentlyAskedQuestionsItem";
|
import { FrequentlyAskedQuestionsItem } from "@components/FrequentlyAskedQuestionsItem/FrequentlyAskedQuestionsItem";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
|
@ -13,7 +13,7 @@ import Outstaffing from "@components/Outstaffing/Outstaffing";
|
|||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||||
|
|
||||||
const Home = () => {
|
export const Home = () => {
|
||||||
if (localStorage.getItem("role_status") !== "18") {
|
if (localStorage.getItem("role_status") !== "18") {
|
||||||
return <Navigate to="/profile" replace />;
|
return <Navigate to="/profile" replace />;
|
||||||
}
|
}
|
||||||
@ -75,5 +75,3 @@ const Home = () => {
|
|||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Home;
|
|
||||||
|
@ -15,7 +15,6 @@ import { Loader } from "@components/Common/Loader/Loader";
|
|||||||
import { Navigation } from "@components/Navigation/Navigation";
|
import { Navigation } from "@components/Navigation/Navigation";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||||
import { SliderWorkers } from "@components/SliderWorkers/SliderWorkers";
|
|
||||||
|
|
||||||
import cursorImg from "assets/icons/cursorImg.svg";
|
import cursorImg from "assets/icons/cursorImg.svg";
|
||||||
|
|
||||||
@ -114,16 +113,6 @@ export const PartnerRequests = () => {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="partner-requests__no-items__free-employees">
|
|
||||||
<SliderWorkers
|
|
||||||
title={"Свободные разработчики"}
|
|
||||||
titleInfo={"в нашей базе"}
|
|
||||||
/>
|
|
||||||
<p className="catalog-link">
|
|
||||||
Перейти в полный <Link to={"/profile/catalog"}>КАТАЛОГ</Link>{" "}
|
|
||||||
сотрудников
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
@ -183,7 +183,7 @@ export const PartnerSettings = () => {
|
|||||||
использования персональных данных
|
использования персональных данных
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="partner-settings__report">
|
{/* <div className="partner-settings__report">
|
||||||
<h3 className="settings__title">Документы и отчеты</h3>
|
<h3 className="settings__title">Документы и отчеты</h3>
|
||||||
<p className="settings__label">Изменить провадера ЭДО</p>
|
<p className="settings__label">Изменить провадера ЭДО</p>
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ export const PartnerSettings = () => {
|
|||||||
Нажимая "Сохранить", вы соглашаетесь с Правилами обработки и
|
Нажимая "Сохранить", вы соглашаетесь с Правилами обработки и
|
||||||
использования персональных данных
|
использования персональных данных
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,12 +45,12 @@ export const Profile = () => {
|
|||||||
title: "Трекер времени",
|
title: "Трекер времени",
|
||||||
description: "Сколько времени занимает<br/> выполнение задач"
|
description: "Сколько времени занимает<br/> выполнение задач"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "profile/payouts",
|
// path: "profile/payouts",
|
||||||
img: paymentIcon,
|
// img: paymentIcon,
|
||||||
title: "Выплаты",
|
// title: "Выплаты",
|
||||||
description: "У вас <span>подтвержден</span><br/> статус самозанятого"
|
// description: "У вас <span>подтвержден</span><br/> статус самозанятого"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "profile/settings",
|
path: "profile/settings",
|
||||||
img: settingIcon,
|
img: settingIcon,
|
||||||
@ -78,12 +78,12 @@ export const Profile = () => {
|
|||||||
title: "Трекер времени",
|
title: "Трекер времени",
|
||||||
description: "Контроль времени и<br/> выполнение задач"
|
description: "Контроль времени и<br/> выполнение задач"
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: "profile/treaties",
|
// path: "profile/treaties",
|
||||||
img: paymentIcon,
|
// img: paymentIcon,
|
||||||
title: "Договоры и отчетность",
|
// title: "Договоры и отчетность",
|
||||||
description: "Ключевые условия<br/> договора"
|
// description: "Ключевые условия<br/> договора"
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: "profile/settings",
|
path: "profile/settings",
|
||||||
img: settingIcon,
|
img: settingIcon,
|
||||||
|
@ -457,14 +457,6 @@ export const ProjectTracker = () => {
|
|||||||
<img src={tasks} alt="img" />
|
<img src={tasks} alt="img" />
|
||||||
<p>Все мои задачи</p>
|
<p>Все мои задачи</p>
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
|
||||||
to="/profile/tracker"
|
|
||||||
className="tab"
|
|
||||||
onClick={() => dispatch(setToggleTab(3))}
|
|
||||||
>
|
|
||||||
<img src={archive} alt="img" />
|
|
||||||
<p>Архив</p>
|
|
||||||
</Link>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="tracker__tabs__content">
|
<div className="tracker__tabs__content">
|
||||||
<TrackerModal
|
<TrackerModal
|
||||||
@ -568,7 +560,7 @@ export const ProjectTracker = () => {
|
|||||||
</div>
|
</div>
|
||||||
{selectedExecutor ? (
|
{selectedExecutor ? (
|
||||||
<div className="tasks__head__executor-selected">
|
<div className="tasks__head__executor-selected">
|
||||||
<p>{selectedExecutor.user.fio}</p>
|
<p>{removeLast(selectedExecutor.user.fio)}</p>
|
||||||
<img
|
<img
|
||||||
className="avatar"
|
className="avatar"
|
||||||
src={
|
src={
|
||||||
|
@ -25,7 +25,7 @@ export const PassingTests = () => {
|
|||||||
expiryTimestamp: moment(),
|
expiryTimestamp: moment(),
|
||||||
autoStart: false,
|
autoStart: false,
|
||||||
onExpire: () => {
|
onExpire: () => {
|
||||||
navigate("/Quiz");
|
navigate("/quiz");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -84,8 +84,8 @@ export const PassingTests = () => {
|
|||||||
<ProfileBreadcrumbs
|
<ProfileBreadcrumbs
|
||||||
links={[
|
links={[
|
||||||
{ name: "Главная", link: "/profile-candidate" },
|
{ name: "Главная", link: "/profile-candidate" },
|
||||||
{ name: "Тестирование", link: "/Quiz" },
|
{ name: "Тестирование", link: "quiz" },
|
||||||
{ name: "Прохождение тестов", link: "/Quiz/test" }
|
{ name: "Прохождение тестов", link: "/quiz/test" }
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
<div className="passing-tests-page__title main-title">
|
<div className="passing-tests-page__title main-title">
|
||||||
|
@ -122,7 +122,7 @@ export const QuizPage = () => {
|
|||||||
<ProfileBreadcrumbs
|
<ProfileBreadcrumbs
|
||||||
links={[
|
links={[
|
||||||
{ name: "Главная", link: "/profile-candidate" },
|
{ name: "Главная", link: "/profile-candidate" },
|
||||||
{ name: "Тестирование", link: "/Quiz" }
|
{ name: "Тестирование", link: "/quiz" }
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
<div className="quiz-page__title main-title">
|
<div className="quiz-page__title main-title">
|
||||||
|
@ -21,7 +21,7 @@ export const QuizReportPage = () => {
|
|||||||
|
|
||||||
let navigate = useNavigate();
|
let navigate = useNavigate();
|
||||||
if (!test) {
|
if (!test) {
|
||||||
navigate("/Quiz");
|
navigate("/quiz");
|
||||||
}
|
}
|
||||||
|
|
||||||
const [testInfo, setTestInfo] = useState({});
|
const [testInfo, setTestInfo] = useState({});
|
||||||
|
@ -4,7 +4,7 @@ import { Link } from "react-router-dom";
|
|||||||
import { useFormValidation } from "@hooks/useFormValidation";
|
import { useFormValidation } from "@hooks/useFormValidation";
|
||||||
import { useNotification } from "@hooks/useNotification";
|
import { useNotification } from "@hooks/useNotification";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
import StepsForCandidate from "@components/StepsForCandidate/StepsForCandidate";
|
import StepsForCandidate from "@components/StepsForCandidate/StepsForCandidate";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ const tasks = [
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
const SingleReportPage = () => {
|
export const SingleReportPage = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -108,5 +108,3 @@ const SingleReportPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default SingleReportPage;
|
|
||||||
|
@ -112,14 +112,6 @@ const Statistics = () => {
|
|||||||
<img src={tasks} alt="img" />
|
<img src={tasks} alt="img" />
|
||||||
<p>Все мои задачи</p>
|
<p>Все мои задачи</p>
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
|
||||||
to="/profile/tracker"
|
|
||||||
className="tab"
|
|
||||||
onClick={() => toggleTabs(3)}
|
|
||||||
>
|
|
||||||
<img src={archive} alt="img" />
|
|
||||||
<p>Архив</p>
|
|
||||||
</Link>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="tracker__tabs__content">
|
<div className="tracker__tabs__content">
|
||||||
<div className="tracker__tabs__content__wrapper statistics-body">
|
<div className="tracker__tabs__content__wrapper statistics-body">
|
||||||
@ -153,7 +145,7 @@ const Statistics = () => {
|
|||||||
<div className="project-info__creator">
|
<div className="project-info__creator">
|
||||||
<span className="return-text">Создатель проекта:</span>
|
<span className="return-text">Создатель проекта:</span>
|
||||||
<div>
|
<div>
|
||||||
<p>{projectInfo?.owner_info?.fio}</p>{" "}
|
<p>{projectInfo?.owner_info?.fio}</p>
|
||||||
<img
|
<img
|
||||||
src={
|
src={
|
||||||
projectInfo?.owner_info?.avatar
|
projectInfo?.owner_info?.avatar
|
||||||
|
@ -161,13 +161,6 @@ export const Tracker = () => {
|
|||||||
<img src={tasks} alt="img" />
|
<img src={tasks} alt="img" />
|
||||||
<p>Все мои задачи</p>
|
<p>Все мои задачи</p>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
className={tab === 3 ? "tab active-tab" : "tab"}
|
|
||||||
onClick={() => toggleTabs(3)}
|
|
||||||
>
|
|
||||||
<img src={archive} alt="img" />
|
|
||||||
<p>Архив</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className={`tracker__tabs__content`}>
|
<div className={`tracker__tabs__content`}>
|
||||||
<div
|
<div
|
||||||
@ -326,103 +319,6 @@ export const Tracker = () => {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
|
||||||
className={
|
|
||||||
tab === 3
|
|
||||||
? "tracker__tabs__content__archive active__content"
|
|
||||||
: "tracker__tabs__content__projects"
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<div className="archive__tasks">
|
|
||||||
<div className="archive__title">
|
|
||||||
<h3>Архив задач:</h3>
|
|
||||||
<p>
|
|
||||||
{`${filterCompleteTasks.length}
|
|
||||||
${caseOfNum(filterCompleteTasks.length, "tasks")}`}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="archive__tasks-period">
|
|
||||||
<div className="buttons-month">
|
|
||||||
<button>
|
|
||||||
<img src={arrowViewReport} alt="<"></img>
|
|
||||||
</button>
|
|
||||||
<button>
|
|
||||||
<img src={arrowViewReport} alt=">"></img>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div className="month-period">
|
|
||||||
<h2>Сентябрь,</h2>
|
|
||||||
<h3>2023</h3>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="archive__tasks__search">
|
|
||||||
<img src={search} alt="search" />
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
placeholder="Найти задачу"
|
|
||||||
onChange={(event) => filterArchiveTasks(event)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{loader && <Loader style="green" />}
|
|
||||||
|
|
||||||
<ArchiveTableTracker
|
|
||||||
loader={loader}
|
|
||||||
filterCompleteTasks={filterCompleteTasks}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="archive__projects">
|
|
||||||
<div className="archive__projects-title">
|
|
||||||
<h3>Архив проектов:</h3>
|
|
||||||
<p>
|
|
||||||
{`${
|
|
||||||
projects?.filter((project) => project.status === 10).length
|
|
||||||
}
|
|
||||||
${caseOfNum(
|
|
||||||
projects?.filter((project) => project.status === 10)
|
|
||||||
.length,
|
|
||||||
"projects"
|
|
||||||
)}`}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="archive__tasks-wrapper">
|
|
||||||
{Boolean(
|
|
||||||
projects?.filter((project) => project.status === 10).length
|
|
||||||
) ? (
|
|
||||||
projects?.map((project, index) => {
|
|
||||||
return project.status === 10 ? (
|
|
||||||
<div
|
|
||||||
className="archive__complete-task-project"
|
|
||||||
key={index}
|
|
||||||
>
|
|
||||||
<div className="archive__complete-task__description">
|
|
||||||
<p className="project-title-archive">
|
|
||||||
{project.name}
|
|
||||||
</p>
|
|
||||||
<p className="date">{project.date}</p>
|
|
||||||
</div>
|
|
||||||
<div className="archive__complete-task__creator">
|
|
||||||
<img src={mockAvatar} alt="#" />
|
|
||||||
<div className="creator-title">
|
|
||||||
<h4>Создатель проекта:</h4>
|
|
||||||
<p>{"Василий Тарасов"}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
) : (
|
|
||||||
""
|
|
||||||
);
|
|
||||||
})
|
|
||||||
) : (
|
|
||||||
<div className="archive__no-item-project">
|
|
||||||
<img src={archiveTrackerProjects} alt="#" />
|
|
||||||
<p>В архиве проектов нет</p>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Footer />
|
<Footer />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
import AuthBlock from "@components/AuthBlock/AuthBlock";
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||||
import { ModalReset } from "@components/Modal/ModalReset/ModalReset";
|
import { ModalReset } from "@components/Modal/ModalReset/ModalReset";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { NavLink } from "react-router-dom";
|
import { NavLink } from "react-router-dom";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import SideBar from "@components/SideBar/SideBar";
|
import SideBar from "@components/SideBar/SideBar";
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import { Navigate } from "react-router-dom";
|
|||||||
import { useFormValidation } from "@hooks/useFormValidation";
|
import { useFormValidation } from "@hooks/useFormValidation";
|
||||||
import { useNotification } from "@hooks/useNotification";
|
import { useNotification } from "@hooks/useNotification";
|
||||||
|
|
||||||
import AuthHeader from "@components/Common/AuthHeader/AuthHeader";
|
import { AuthHeader } from "@components/Common/AuthHeader/AuthHeader";
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
import ModalLayout from "@components/Common/ModalLayout/ModalLayout";
|
||||||
import { ModalTrackerRegistration } from "@components/Modal/ModalTrackerRegistration/ModalTrackerRegistration";
|
import { ModalTrackerRegistration } from "@components/Modal/ModalTrackerRegistration/ModalTrackerRegistration";
|
||||||
|
Loading…
Reference in New Issue
Block a user