151 lines
5.1 KiB
JavaScript
151 lines
5.1 KiB
JavaScript
import React, { useState } from "react";
|
||
import { useSelector } from "react-redux";
|
||
|
||
import { getProfileInfo } from "@redux/outstaffingSlice";
|
||
|
||
import { urlForLocal } from "@utils/helper";
|
||
|
||
import { CardControl } from "@components/CardControl/CardControl";
|
||
import { Footer } from "@components/Common/Footer/Footer";
|
||
import { Navigation } from "@components/Navigation/Navigation";
|
||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||
|
||
import financeIcon from "assets/icons/financeIcon.png";
|
||
import paymentIcon from "assets/icons/paymentIcon.png";
|
||
import settingIcon from "assets/icons/settingIcon.png";
|
||
import summaryIcon from "assets/icons/summaryIcon.png";
|
||
import timerIcon from "assets/icons/timerIcon.png";
|
||
import avatarMok from "assets/images/avatarMok.png";
|
||
import reportsIcon from "assets/images/reports.png";
|
||
|
||
import "./profile.scss";
|
||
|
||
export const Profile = () => {
|
||
const profileInfo = useSelector(getProfileInfo);
|
||
const [user] = useState(
|
||
localStorage.getItem("role_status") === "18" ? "partner" : "developer"
|
||
);
|
||
const [profileItemsInfo] = useState({
|
||
developer: [
|
||
{
|
||
path: "profile",
|
||
img: paymentIcon,
|
||
title: "Работа в IT <br/>открытые запросы",
|
||
description: "Перейдите чтобы посмотреть <br/>открытые позиции"
|
||
},
|
||
{
|
||
path: "profile/summary",
|
||
img: summaryIcon,
|
||
title: "Резюме",
|
||
description: "Ваше резюме <br/><span>заполнено</span>"
|
||
},
|
||
{
|
||
path: "profile/tracker",
|
||
img: timerIcon,
|
||
title: "Трекер <br/>времени",
|
||
description: "Сколько времени занимает <br/>выполнение задач"
|
||
},
|
||
{
|
||
path: "profile/payouts",
|
||
img: financeIcon,
|
||
title: "Выплаты и <br/>финансы",
|
||
description: "У вас <span>подтвержден</span> <br/>статус самозанятого"
|
||
},
|
||
{
|
||
path: "profile/settings",
|
||
img: settingIcon,
|
||
title: "Настройки <br/>профиля",
|
||
description: "Перейдите чтобы начать <br/>редактирование"
|
||
},
|
||
{
|
||
path: "profile/calendar",
|
||
img: reportsIcon,
|
||
title: "Ваша <br/>отчетность",
|
||
description: "<span></span>Отработанных в этом месяце часов"
|
||
}
|
||
],
|
||
partner: [
|
||
{
|
||
path: "profile/requests",
|
||
img: reportsIcon,
|
||
title: "Мои вакансии",
|
||
description:
|
||
"Ваши открытые вакансии, <br/><span>которыми вы можете управлять</span>"
|
||
},
|
||
{
|
||
path: "profile/employees",
|
||
img: summaryIcon,
|
||
title: "Данные персонала",
|
||
description: "Наши специалисты, <br/><span>уже работающие у вас</span>"
|
||
},
|
||
{
|
||
path: "profile/tracker",
|
||
img: timerIcon,
|
||
title: "Трекер времени",
|
||
description: "Контроль времени и <br/>выполнение задач"
|
||
},
|
||
// {
|
||
// path: "profile/treaties",
|
||
// img: paymentIcon,
|
||
// title: "Договоры и отчетность",
|
||
// description: "Ключевые условия <br/>договора"
|
||
// },
|
||
{
|
||
path: "profile/settings",
|
||
img: settingIcon,
|
||
title: "Настройки профиля",
|
||
description: "Перейдите чтобы начать <br/>редактирование"
|
||
}
|
||
]
|
||
});
|
||
|
||
return (
|
||
<div className="profile">
|
||
<ProfileHeader />
|
||
<Navigation />
|
||
<div className="container">
|
||
<ProfileBreadcrumbs links={[{ name: "Главная", link: "/profile" }]} />
|
||
<h2 className="profile__title">
|
||
<span>
|
||
<p>Добрый день, </p>
|
||
{profileInfo?.fio || profileInfo?.username}
|
||
</span>
|
||
</h2>
|
||
<div className="summary__info">
|
||
<div className="summary__person">
|
||
<img
|
||
src={
|
||
profileInfo?.photo ? urlForLocal(profileInfo.photo) : avatarMok
|
||
}
|
||
className="summary__avatar"
|
||
alt="avatar"
|
||
/>
|
||
<p className="summary__name">
|
||
<span>
|
||
{profileInfo?.fio || profileInfo?.username}
|
||
{user === "developer" &&
|
||
`, ${profileInfo?.specification} разработчик`}
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div className="profile__items">
|
||
{profileItemsInfo[user].map((item, index) => {
|
||
return (
|
||
<CardControl
|
||
description={item.description}
|
||
img={item.img}
|
||
path={item.path}
|
||
title={item.title}
|
||
key={index}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
</div>
|
||
<Footer />
|
||
</div>
|
||
);
|
||
};
|