60 lines
1.7 KiB
React
Raw Normal View History

2023-05-24 19:23:24 +03:00
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
2023-05-31 08:36:15 +03:00
import { NavLink, useNavigate } from "react-router-dom";
2023-05-24 19:23:24 +03:00
2023-05-30 10:10:34 +03:00
import { auth, setProfileInfo } from "@redux/outstaffingSlice";
import { getRole } from "@redux/roleSlice";
2023-05-24 19:23:24 +03:00
2023-05-31 08:36:15 +03:00
import { apiRequest } from "@api/request";
import { Loader } from "@components/Common/Loader/Loader";
2023-05-24 19:23:24 +03:00
import "./profileHeader.scss";
export const ProfileHeader = () => {
const navigate = useNavigate();
const dispatch = useDispatch();
const userRole = useSelector(getRole);
const [user] = useState(
localStorage.getItem("role_status") === "18" ? "partner" : "developer"
);
const [isLoggingOut, setIsLoggingOut] = useState(false);
useEffect(() => {
if (localStorage.getItem("role_status") === "18") {
return;
}
2023-10-27 18:32:37 +03:00
apiRequest(`/user/me`).then((profileInfo) => {
dispatch(setProfileInfo(profileInfo.userCard));
});
2023-05-24 19:23:24 +03:00
}, [dispatch]);
const handler = () => {
setIsLoggingOut(true);
localStorage.clear();
dispatch(auth(false));
setIsLoggingOut(false);
navigate(userRole === "ROLE_DEV" ? "/authdev" : "/auth");
};
return (
<header className="profileHeader">
<div className="profileHeader__head">
<div className="profileHeader__container">
<NavLink to={"/profile"} className="profileHeader__title">
itguild.
<span>
{user === "developer" ? "для разработчиков" : "для партнеров"}
</span>
</NavLink>
<button onClick={handler} className="profileHeader__logout">
{isLoggingOut ? <Loader /> : "Выйти"}
</button>
</div>
</div>
</header>
);
};