import { useState, } from 'react'; import UserService from "../services/UserService"; import BasketService from "../services/BasketService"; export function useUser() { const [user, setUser] = useState(null); async function authorization(data) { try { const response = await UserService.login(data); setUser(response); localStorage.setItem("user", JSON.stringify(response)); } catch (error) { throw new Error(error); } } async function reg(data) { try { const response = await UserService.registration({...data, "role": "user"}); await BasketService.createBasket(response.id); setUser(response); localStorage.setItem("user", JSON.stringify(response)); } catch (error) { throw new Error(error); } } function logout() { setUser(null); localStorage.removeItem("user"); } function checkIsAuth() { if (user) { return; } const uuser = localStorage.getItem('user'); if (uuser) { const t = JSON.parse(uuser); setUser(t); } } return { id: user ? user.id : null, isAdmin: Boolean(user && user.role == "admin"), isAuth: user && user.id, authorization, reg, logout, checkIsAuth }; }