119 lines
2.7 KiB
React
Raw Normal View History

2023-05-31 08:36:15 +03:00
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { NavLink } from "react-router-dom";
import { getProfileInfo, setProfileInfo } from "@redux/outstaffingSlice";
import { urlForLocal } from "@utils/helper";
import { apiRequest } from "@api/request";
import avatarMok from "assets/images/avatarMok.png";
export const Navigation = () => {
const dispatch = useDispatch();
const profileInfo = useSelector(getProfileInfo);
const [user] = useState(
2023-12-05 14:15:04 +03:00
localStorage.getItem("role_status") === "18" ? "partner" : "developer"
2023-05-31 08:36:15 +03:00
);
2023-08-31 01:58:35 +03:00
2023-05-31 08:36:15 +03:00
const [navInfo] = useState({
developer: [
{
path: "/summary",
name: "Резюме",
},
{
path: "/calendar",
2023-12-04 19:28:40 +03:00
name: "Отчеты",
2023-05-31 08:36:15 +03:00
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/payouts",
name: "Выплаты",
},
{
path: "/settings",
name: "Настройки",
},
],
partner: [
{
path: "/catalog",
name: "Каталог",
},
{
path: "/requests",
name: "Запросы",
},
{
path: "/categories",
name: "Персонал",
},
{
path: "/tracker",
name: "Трекер",
},
{
path: "/treaties",
name: "Договора",
},
{
path: "/settings",
name: "Настройки",
},
],
});
useEffect(() => {
if (localStorage.getItem("role_status") === "18") {
return;
}
2023-11-05 20:41:40 +03:00
if (Object.keys(profileInfo).length) {
return;
}
2023-10-27 18:32:37 +03:00
apiRequest(`/user/me`).then((profileInfo) =>
2023-11-05 20:42:03 +03:00
dispatch(
setProfileInfo(
2023-12-05 14:15:04 +03:00
profileInfo.userCard ? profileInfo.userCard : profileInfo
)
)
2023-05-31 08:36:15 +03:00
);
}, [dispatch]);
return (
<div className="profileHeader__info">
<div className="profileHeader__container">
<nav className="profileHeader__nav">
{navInfo[user].map((link, index) => {
return (
<NavLink key={index} end to={`/profile${link.path}`}>
{link.name}
</NavLink>
);
})}
</nav>
<div className="profileHeader__personalInfo">
<h3 className="profileHeader__personalInfoName">
2023-11-05 20:41:40 +03:00
{profileInfo?.fio ? profileInfo?.fio : profileInfo?.username}
2023-05-31 08:36:15 +03:00
</h3>
<NavLink end to={"/profile"}>
<img
src={
2023-11-05 20:41:40 +03:00
profileInfo?.photo ? urlForLocal(profileInfo.photo) : avatarMok
2023-05-31 08:36:15 +03:00
}
className="profileHeader__personalInfoAvatar"
alt="avatar"
/>
</NavLink>
</div>
</div>
</div>
);
};