Compare commits

..

4 Commits

Author SHA1 Message Date
Victor Batischev
4603e2dc8b format 2024-03-06 14:08:41 +03:00
Victor Batischev
23e8c5c683 add empty forms page 2024-03-06 14:08:06 +03:00
Victor Batischev
46c91cfbff remove archive 2024-03-06 12:34:12 +03:00
Victor Batischev
4d148cc57d hide payouts 2024-03-06 12:29:13 +03:00
44 changed files with 131 additions and 255 deletions

View File

@ -24,6 +24,7 @@ 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 { Forms } from "@pages/Forms/Forms";
import { Profile } from "@pages/Profile/Profile";
import { ProfileCandidate } from "@pages/ProfileCandidate/ProfileCandidate";
import { ProjectTracker } from "@pages/ProjectTracker/ProjectTracker";
@ -39,23 +40,23 @@ 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 { 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 Notification from "@components/Notification/Notification";
import { Notification } from "@components/Notification/Notification";
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/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";
import "assets/fonts/stylesheet.css";
import "assets/global.scss";
const App = () => {
const notification = useSelector(getNotification);
@ -66,6 +67,7 @@ const App = () => {
<Route exact path="/auth" element={<Auth />} />
<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"

View File

@ -15,7 +15,7 @@ import { currentMonth } from "../../utils/calendarHelper";
import CalendarComponent from "./CalendarComponent";
import "./calendar.scss";
const Calendar = () => {
export const Calendar = () => {
if (localStorage.getItem("role_status") !== "18") {
return <Navigate to="/profile" replace />;
}
@ -84,5 +84,3 @@ const Calendar = () => {
</div>
);
};
export default Calendar;

View File

@ -28,7 +28,7 @@ import rectangle from "assets/images/rectangle_secondPage.png";
import "./candidate.scss";
const Candidate = () => {
export const Candidate = () => {
if (localStorage.getItem("role_status") !== "18") {
return <Navigate to="/profile" replace />;
}
@ -238,5 +238,3 @@ const Candidate = () => {
</div>
);
};
export default Candidate;

View File

@ -51,5 +51,3 @@ export const AuthHeader = () => {
</div>
);
};
export default AuthHeader;

View File

@ -3,7 +3,7 @@ import { Link } from "react-router-dom";
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 { Footer } from "@components/Common/Footer/Footer";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";

View File

@ -15,6 +15,7 @@ import {
caseOfNum,
getCorrectRequestDate,
getToken,
removeLast,
urlForLocal
} from "@utils/helper";
@ -630,14 +631,6 @@ export const TicketFullScreen = () => {
<img src={tasks} alt="img" />
<p>Все мои задачи</p>
</Link>
<Link
to="/profile/tracker"
className="tab"
onClick={() => toggleTabs(3)}
>
<img src={archive} alt="img" />
<p>Архив</p>
</Link>
</div>
{loader ? (
<Loader />
@ -812,14 +805,14 @@ export const TicketFullScreen = () => {
<div className="workers fullscreen-workers">
<div className="workers_box task__info">
<div className="workers__creator">
Создатель: <p>{taskInfo.user?.fio}</p>
Создатель: <p>{removeLast(taskInfo.user?.fio)}</p>
</div>
{taskInfo.executor ? (
<>
<h5>Исполнитель: </h5>
<div className="executor">
<p>{taskInfo.executor.fio}</p>
<p>{removeLast(taskInfo.executor.fio)}</p>
<img
src={
taskInfo.executor?.avatar
@ -858,7 +851,7 @@ export const TicketFullScreen = () => {
key={person.user_id}
onClick={() => taskExecutor(person)}
>
<span>{person.user.fio}</span>
<span>{removeLast(person.user.fio)}</span>
<img
src={
person.user?.avatar
@ -881,7 +874,7 @@ export const TicketFullScreen = () => {
{taskInfo.taskUsers.map((member) => {
return (
<div className="worker" key={member.user_id}>
<p>{member.fio}</p>
<p>{removeLast(member.fio)}</p>
<img
src={
member?.avatar
@ -924,7 +917,7 @@ export const TicketFullScreen = () => {
key={person.user_id}
onClick={() => addMember(person)}
>
<span>{person.user.fio}</span>
<span>{removeLast(person.user.fio)}</span>
<img
src={
person.user?.avatar

View File

@ -713,7 +713,7 @@ export const TrackerModal = ({
src={urlForLocal(selectedExecutorTask.user.avatar)}
alt="avatar"
/>
<span>{selectedExecutorTask.user.fio}</span>
<span>{removeLast(selectedExecutorTask.user.fio)}</span>
</>
) : (
<span>{selectedExecutorTask}</span>

View File

@ -29,10 +29,10 @@ export const Navigation = () => {
path: "/tracker",
name: "Трекер"
},
{
path: "/payouts",
name: "Выплаты"
},
// {
// path: "/payouts",
// name: "Выплаты"
// },
{
path: "/quiz",
name: "Тесты"
@ -61,10 +61,10 @@ export const Navigation = () => {
path: "/tracker",
name: "Трекер"
},
{
path: "/treaties",
name: "Договоры"
},
// {
// path: "/treaties",
// name: "Договоры"
// },
{
path: "/settings",
name: "Настройки"
@ -81,7 +81,7 @@ export const Navigation = () => {
<NavLink
key={index}
end
to={link.path === "/Quiz" ? link.path : `/profile${link.path}`}
to={link.path === "/quiz" ? link.path : `/profile${link.path}`}
className={
currentPath.includes(link.path) ||
currentPath.includes(link.active)

View File

@ -286,15 +286,15 @@ export const ProfileCalendarComponent = React.memo(
? `${getCorrectDate(startDate)} - ${getCorrectDate(endDate)}`
: `${getCorrectDate(endDate)} - ${getCorrectDate(startDate)}`
: activePeriod
? "Выберите диапазон на календаре"
: "Выбрать диапазон"}
? "Выберите диапазон на календаре"
: "Выбрать диапазон"}
</span>
<span>
{totalRangeHours
? `${totalRangeHours} ${hourOfNum(totalRangeHours)}`
: endDate
? "0 часов"
: ""}
? "0 часов"
: ""}
</span>
{endDate && (
<BaseButton

View File

@ -39,10 +39,10 @@ export const ProfileHeader = () => {
path: "/tracker",
name: "Трекер"
},
{
path: "/payouts",
name: "Выплаты"
},
// {
// path: "/payouts",
// name: "Выплаты"
// },
{
path: "/quiz",
name: "Тесты"
@ -69,10 +69,10 @@ export const ProfileHeader = () => {
path: "/tracker",
name: "Трекер"
},
{
path: "/treaties",
name: "Договоры"
},
// {
// path: "/treaties",
// name: "Договоры"
// },
{
path: "/settings",
name: "Настройки"
@ -170,7 +170,7 @@ export const ProfileHeader = () => {
<NavLink
key={index}
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" : ""}
>
{link.name}

View File

@ -32,7 +32,7 @@ import "./reportForm.scss";
registerLocale("ru", ru);
const ReportForm = () => {
export const ReportForm = () => {
if (localStorage.getItem("role_status") === "18") {
return <Navigate to="/profile" replace />;
}
@ -456,5 +456,3 @@ const ReportForm = () => {
</section>
);
};
export default ReportForm;

View File

@ -47,23 +47,23 @@ export const SideBar = () => {
</div>
<ul className="auth-body__navigation">
<li>
<Link to={"/auth"}>Вход для партнеров</Link>
<Link to={"/auth"}>Вход</Link>
</li>
<li>
<Link to={"/profile"}>Кабинет разработчика</Link>
<Link to={"/profile"}>Личный кабинет</Link>
</li>
<li>
<Link to={"/tracker-intro"}>Трекер</Link>
</li>
<li>
<Link to={"/Quiz"}>Тесты</Link>
<Link to={"/quiz"}>Тесты</Link>
</li>
<li>
<Link to={"/forms"}>Формы</Link>
</li>
<li>
<a href="#">Школа</a>
</li>
<li>
<a href="#">Отрасли</a>
</li>
<li>
<a href="#">Контакты</a>
</li>

View File

@ -3,7 +3,7 @@ import { CKEditor } from "@ckeditor/ckeditor5-react";
import React, { useState } from "react";
import { getCorrectDate } from "@utils/calendarHelper";
import { urlForLocal } from "@utils/helper";
import { removeLast, urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
@ -93,7 +93,7 @@ export const TrackerTaskComment = ({
}
alt="avatar"
/>
<p>{comment.user.fio}</p>
<p>{removeLast(comment.user.fio)}</p>
</div>
<div className="comments__list__item__date">
<span>{getCorrectDate(comment.created_at)}</span>

View File

@ -32,7 +32,7 @@ export const HeaderPageTestsQuiz = ({ isVisibilityButton }) => {
</div>
{isVisibilityButton && (
<Link
to={"/Quiz/instruction"}
to={"/quiz/instruction"}
className="quiz-btn quiz-btn_restriction"
>
Пройти

View File

@ -44,7 +44,7 @@ export const MyTestsQuiz = ({ listTests }) => {
</h3>
<div className="item-test__body test-data">
<Link
to={"/Quiz/interjacent"}
to={"/quiz/interjacent"}
className="quiz-btn"
onClick={() => recordSelectedTest(item)}
>

View File

@ -58,7 +58,7 @@ export const TaskQuiz = ({ timer }) => {
text: "Тест успешно пройден",
type: "success"
});
navigate("/Quiz");
navigate("/quiz");
// if (String(res?.status)[0] !== "2") {
// showNotification({
// show: true,

View File

@ -2,7 +2,7 @@ import React, { useState } from "react";
import { Link } from "react-router-dom";
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 { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import SideBar from "@components/SideBar/SideBar";

View File

@ -5,10 +5,9 @@ import { useNavigate } from "react-router-dom";
import { selectAuth } from "@redux/outstaffingSlice";
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 SideBar from "@components/SideBar/SideBar";
import SliderWorkers from "@components/SliderWorkers/SliderWorkers";
import arrow from "assets/icons/arrows/arrow__login_page.png";
import text from "assets/images/Body_Text.png";
@ -19,7 +18,7 @@ import cross from "assets/images/cross.png";
import "./auth.scss";
const Auth = () => {
export const Auth = () => {
const isAuth = useSelector(selectAuth);
let navigate = useNavigate();
@ -34,11 +33,6 @@ const Auth = () => {
return (
<section className="auth-partners">
<AuthHeader />
<SliderWorkers
title={"Свободные разработчики"}
titleInfo={"для Вашей команды"}
subTitle={true}
/>
<div className="auth-partners__background">
<img className="auth-partners__vector" src={vector} alt="" />
<img className="auth-partners__vector-black" src={vectorBlack} alt="" />
@ -98,5 +92,3 @@ const Auth = () => {
</section>
);
};
export default Auth;

View File

@ -6,7 +6,7 @@ import { selectAuth } from "@redux/outstaffingSlice";
import AuthBlock from "@components/AuthBlock/AuthBlock";
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 ModalResetPassword from "@components/Modal/ModalResetPassword/ModalResetPassword";
import SideBar from "@components/SideBar/SideBar";

View File

@ -1,7 +1,7 @@
import React, { useState } from "react";
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 { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import SideBar from "@components/SideBar/SideBar";

View File

@ -2,7 +2,7 @@ import React, { useState } from "react";
import CatalogPersonCard from "@components/CatalogPersonCard/CatalogPersonCard";
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 { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import SideBar from "@components/SideBar/SideBar";

View File

@ -1,6 +1,6 @@
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 SideBar from "@components/SideBar/SideBar";

View File

@ -23,7 +23,7 @@ import rectangle from "assets/images/rectangle_secondPage.png";
import "./formPage.scss";
const FormPage = () => {
export const FormPage = () => {
if (localStorage.getItem("role_status") !== "18") {
return <Navigate to="/profile" replace />;
}
@ -101,5 +101,3 @@ const FormPage = () => {
</div>
);
};
export default FormPage;

21
src/pages/Forms/Forms.jsx Normal file
View 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>
);
};

View 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;
}
}

View File

@ -1,7 +1,7 @@
import { useEffect, useState } from "react";
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 { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import SideBar from "@components/SideBar/SideBar";

View File

@ -1,6 +1,6 @@
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 { FrequentlyAskedQuestionsItem } from "@components/FrequentlyAskedQuestionsItem/FrequentlyAskedQuestionsItem";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";

View File

@ -13,7 +13,7 @@ import Outstaffing from "@components/Outstaffing/Outstaffing";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
const Home = () => {
export const Home = () => {
if (localStorage.getItem("role_status") !== "18") {
return <Navigate to="/profile" replace />;
}
@ -75,5 +75,3 @@ const Home = () => {
</>
);
};
export default Home;

View File

@ -15,7 +15,6 @@ import { Loader } from "@components/Common/Loader/Loader";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { SliderWorkers } from "@components/SliderWorkers/SliderWorkers";
import cursorImg from "assets/icons/cursorImg.svg";
@ -114,16 +113,6 @@ export const PartnerRequests = () => {
</p>
</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>

View File

@ -183,7 +183,7 @@ export const PartnerSettings = () => {
использования персональных данных
</span>
</div>
<div className="partner-settings__report">
{/* <div className="partner-settings__report">
<h3 className="settings__title">Документы и отчеты</h3>
<p className="settings__label">Изменить провадера ЭДО</p>
@ -221,7 +221,7 @@ export const PartnerSettings = () => {
Нажимая "Сохранить", вы соглашаетесь с Правилами обработки и
использования персональных данных
</span>
</div>
</div> */}
</div>
</div>
</div>

View File

@ -45,12 +45,12 @@ export const Profile = () => {
title: "Трекер времени",
description: "Сколько времени занимает<br/> выполнение задач"
},
{
path: "profile/payouts",
img: paymentIcon,
title: "Выплаты",
description: "У вас <span>подтвержден</span><br/> статус самозанятого"
},
// {
// path: "profile/payouts",
// img: paymentIcon,
// title: "Выплаты",
// description: "У вас <span>подтвержден</span><br/> статус самозанятого"
// },
{
path: "profile/settings",
img: settingIcon,
@ -78,12 +78,12 @@ export const Profile = () => {
title: "Трекер времени",
description: "Контроль времени и<br/> выполнение задач"
},
{
path: "profile/treaties",
img: paymentIcon,
title: "Договоры и отчетность",
description: "Ключевые условия<br/> договора"
},
// {
// path: "profile/treaties",
// img: paymentIcon,
// title: "Договоры и отчетность",
// description: "Ключевые условия<br/> договора"
// },
{
path: "profile/settings",
img: settingIcon,

View File

@ -457,14 +457,6 @@ export const ProjectTracker = () => {
<img src={tasks} alt="img" />
<p>Все мои задачи</p>
</Link>
<Link
to="/profile/tracker"
className="tab"
onClick={() => dispatch(setToggleTab(3))}
>
<img src={archive} alt="img" />
<p>Архив</p>
</Link>
</div>
<div className="tracker__tabs__content">
<TrackerModal
@ -568,7 +560,7 @@ export const ProjectTracker = () => {
</div>
{selectedExecutor ? (
<div className="tasks__head__executor-selected">
<p>{selectedExecutor.user.fio}</p>
<p>{removeLast(selectedExecutor.user.fio)}</p>
<img
className="avatar"
src={

View File

@ -25,7 +25,7 @@ export const PassingTests = () => {
expiryTimestamp: moment(),
autoStart: false,
onExpire: () => {
navigate("/Quiz");
navigate("/quiz");
}
});
@ -84,8 +84,8 @@ export const PassingTests = () => {
<ProfileBreadcrumbs
links={[
{ name: "Главная", link: "/profile-candidate" },
{ name: "Тестирование", link: "/Quiz" },
{ name: "Прохождение тестов", link: "/Quiz/test" }
{ name: "Тестирование", link: "quiz" },
{ name: "Прохождение тестов", link: "/quiz/test" }
]}
/>
<div className="passing-tests-page__title main-title">

View File

@ -122,7 +122,7 @@ export const QuizPage = () => {
<ProfileBreadcrumbs
links={[
{ name: "Главная", link: "/profile-candidate" },
{ name: "Тестирование", link: "/Quiz" }
{ name: "Тестирование", link: "/quiz" }
]}
/>
<div className="quiz-page__title main-title">

View File

@ -21,7 +21,7 @@ export const QuizReportPage = () => {
let navigate = useNavigate();
if (!test) {
navigate("/Quiz");
navigate("/quiz");
}
const [testInfo, setTestInfo] = useState({});

View File

@ -4,7 +4,7 @@ import { Link } from "react-router-dom";
import { useFormValidation } from "@hooks/useFormValidation";
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 SideBar from "@components/SideBar/SideBar";
import StepsForCandidate from "@components/StepsForCandidate/StepsForCandidate";

View File

@ -1,6 +1,6 @@
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 SideBar from "@components/SideBar/SideBar";

View File

@ -24,7 +24,7 @@ const tasks = [
}
];
const SingleReportPage = () => {
export const SingleReportPage = () => {
const navigate = useNavigate();
return (
@ -108,5 +108,3 @@ const SingleReportPage = () => {
</div>
);
};
export default SingleReportPage;

View File

@ -112,14 +112,6 @@ const Statistics = () => {
<img src={tasks} alt="img" />
<p>Все мои задачи</p>
</Link>
<Link
to="/profile/tracker"
className="tab"
onClick={() => toggleTabs(3)}
>
<img src={archive} alt="img" />
<p>Архив</p>
</Link>
</div>
<div className="tracker__tabs__content">
<div className="tracker__tabs__content__wrapper statistics-body">
@ -153,7 +145,7 @@ const Statistics = () => {
<div className="project-info__creator">
<span className="return-text">Создатель проекта:</span>
<div>
<p>{projectInfo?.owner_info?.fio}</p>{" "}
<p>{projectInfo?.owner_info?.fio}</p>
<img
src={
projectInfo?.owner_info?.avatar

View File

@ -161,13 +161,6 @@ export const Tracker = () => {
<img src={tasks} alt="img" />
<p>Все мои задачи</p>
</div>
<div
className={tab === 3 ? "tab active-tab" : "tab"}
onClick={() => toggleTabs(3)}
>
<img src={archive} alt="img" />
<p>Архив</p>
</div>
</div>
<div className={`tracker__tabs__content`}>
<div
@ -326,103 +319,6 @@ export const Tracker = () => {
</p>
</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>
<Footer />

View File

@ -1,7 +1,7 @@
import React, { useState } from "react";
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 ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import { ModalReset } from "@components/Modal/ModalReset/ModalReset";

View File

@ -1,7 +1,7 @@
import React from "react";
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 SideBar from "@components/SideBar/SideBar";

View File

@ -4,7 +4,7 @@ import { Navigate } from "react-router-dom";
import { useFormValidation } from "@hooks/useFormValidation";
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 ModalLayout from "@components/Common/ModalLayout/ModalLayout";
import { ModalTrackerRegistration } from "@components/Modal/ModalTrackerRegistration/ModalTrackerRegistration";