import { useQuery } from 'react-query' import { useNavigate } from '@tanstack/react-router' import { Body_login_login_access_token as AccessToken, LoginService, UserOut, UsersService, } from '../client' const isLoggedIn = () => { return localStorage.getItem('access_token') !== null } const useAuth = () => { const navigate = useNavigate() const { data: user, isLoading } = useQuery( 'currentUser', UsersService.readUserMe, { enabled: isLoggedIn(), }, ) const login = async (data: AccessToken) => { const response = await LoginService.loginAccessToken({ formData: data, }) localStorage.setItem('access_token', response.access_token) navigate({ to: '/' }) } const logout = () => { localStorage.removeItem('access_token') navigate({ to: '/login' }) } return { login, logout, user, isLoading } } export { isLoggedIn } export default useAuth