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