2024-01-17 20:19:32 +04:00

55 lines
1.2 KiB
JavaScript

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
};
}