@fakel/rest-admin
Version:
An application that makes it easier to work with your API
42 lines (37 loc) • 1.05 kB
text/typescript
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,
};
};