Spaces:
Running
Running
import { useAppDispatch, useAppSelector } from "@/store/hooks"; | |
import { useEffect } from "react"; | |
import { setIsAuth, setUserName } from "./reducer"; | |
export const useAuth = () => { | |
const dispatch = useAppDispatch(); | |
const { isAuth, userName } = useAppSelector((store) => store.auth); | |
useEffect(() => { | |
const storedUserName = localStorage.getItem("user_name"); | |
if (storedUserName != null && storedUserName.trim().length > 0) { | |
dispatch(setIsAuth(true)); | |
dispatch(setUserName(storedUserName)); | |
} else { | |
dispatch(setIsAuth(false)); | |
dispatch(setUserName("")); | |
localStorage.removeItem("user_name"); | |
} | |
}, [dispatch]); | |
const login = ({ name }: { name: string }) => { | |
dispatch(setIsAuth(true)); | |
dispatch(setUserName(name)); | |
localStorage.setItem("user_name", name); | |
}; | |
const logout = () => { | |
localStorage.removeItem("user_name"); | |
dispatch(setIsAuth(false)); | |
dispatch(setUserName("")); | |
}; | |
return { login, isAuth, userName, logout }; | |
}; | |