import React, { useEffect, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; import { useDispatch, useSelector } from "react-redux"; import { auth, selectAuth, setUserInfo } from "@redux/outstaffingSlice"; import { loading, selectIsLoading } from "@redux/loaderSlice"; import { setRole } from "@redux/roleSlice"; import ModalRegistration from "@components/Modal/ModalRegistration/ModalRegistration"; import ModalErrorLogin from "@components/Modal/ModalErrorLogin/ModalErrorLogin"; import { Loader } from "@components/Loader/Loader"; import { apiRequest } from "@api/request"; import ellipse from "assets/icons/ellipse.png"; import "./authBox.scss"; export const AuthBox = ({ title }) => { const dispatch = useDispatch(); const ref = useRef(); const navigate = useNavigate(); const isAuth = useSelector(selectAuth); const isLoading = useSelector(selectIsLoading); const [error, setError] = useState(null); const [modalError, setModalError] = useState(false); const [modalReg, setModalReg] = useState(false); useEffect(() => { if (!localStorage.getItem("auth_token")) { dispatch(auth(false)); } }, []); useEffect(() => { if (isAuth) { navigate("/"); } }); const submitHandler = () => { let formData = new FormData(ref.current); if (!isLoading) { dispatch(loading(true)); apiRequest("/user/login", { method: "POST", data: formData, }).then((res) => { if (!res.access_token) { setError("Введены некоректные данные для входа"); setModalError(true); dispatch(loading(false)); } else { localStorage.setItem("auth_token", res.access_token); localStorage.setItem("id", res.id); localStorage.setItem("cardId", res.card_id); localStorage.setItem("role_status", res.status); localStorage.setItem( "access_token_expired_at", res.access_token_expired_at ); dispatch(auth(true)); dispatch(setUserInfo(res)); dispatch(loading(false)); dispatch(setRole("ROLE_PARTNER")); } }); } }; return (