11/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2+ import { setAxiosToken } from 'api/axiosInstances' ;
3+ import userAPI from 'api/userAPI' ;
24import { AxiosError } from 'axios' ;
5+ import { useSetNotification } from 'hooks/useSetNotification' ;
6+ import { LoginFormType , LoginResponse } from 'models/apiTypes' ;
7+ import { resetNotifications } from 'providers/Notifications/actions' ;
8+ import { useNotifications } from 'providers/Notifications/NotificationProvider' ;
39import { useMutation } from 'react-query' ;
410import { useHistory } from 'react-router-dom' ;
11+ import urls from 'routing/urls' ;
512import { __TOKEN__ } from 'utils/constants' ;
6-
7- import { setAxiosToken } from '../../api/axiosInstances' ;
8- import userAPI from '../../api/userAPI' ;
9- import { LoginFormType , LoginResponse } from '../../models/apiTypes' ;
10- import urls from '../../routing/urls' ;
11- import { setUserStorageItem } from '../../utils/storage' ;
12-
13+ import { setUserStorageItem } from 'utils/storage' ;
1314
1415export const useSignIn = ( ) => {
1516 const history = useHistory ( ) ;
17+ const setNotification = useSetNotification ( ) ;
18+ const [ , notificationDispatch ] = useNotifications ( ) ;
1619
1720 return useMutation < LoginResponse , AxiosError , LoginFormType > (
1821 ( params ) => {
@@ -24,12 +27,14 @@ export const useSignIn = () => {
2427 } ,
2528 {
2629 onSuccess : async ( data , variables ) => {
30+ notificationDispatch ( resetNotifications ( ) ) ;
2731 setUserStorageItem ( __TOKEN__ , data ?. token ?? '' , ! variables . rememberMe ) ;
2832 setAxiosToken ( data ?. token ?? '' ) ;
2933
3034 history . replace ( urls . patients ( ) ) ;
3135 } ,
3236 onError : ( errors ) => {
37+ setNotification ( 'Invalid credential combination.' , 'error' ) ;
3338 console . log ( errors ) ;
3439 } ,
3540 }
0 commit comments