UNPKG

@fakel/rest-admin

Version:

An application that makes it easier to work with your API

42 lines (37 loc) 1.05 kB
import { useState } from 'react'; import { useAuthProviderStore } from './useAuthProviderStore'; import { useAuthStore } from './useAuthStore'; export type LoginCredentials = { username: string; password: string; }; export const useLogin = () => { const authProviderStore = useAuthProviderStore(); const authStore = useAuthStore(); const [loading, setLoading] = useState(false); return { login: async (credentials: LoginCredentials) => { setLoading(true); authProviderStore.authProvider .login(credentials) .then(() => { authStore.setIsAuth(true); setLoading(false); }) .catch((error) => { setLoading(false); authStore.setIsAuth(false); console.error(error); }); }, logout: async () => { authProviderStore.authProvider.logout().then(() => { authStore.setIsAuth(false); authStore.setUser(null); }); }, isAuthorized: authStore.isAuth, user: authStore.user, loading, }; };