@@ -11,7 +11,6 @@ import Text from '../../components/Text';
1111import { useAlert } from '../../hooks/useAlert' ;
1212import { useAuth } from '../../hooks/useAuth' ;
1313import useForm from '../../hooks/useForm' ;
14- import { useLoader } from '../../hooks/useLoader' ;
1514import catchError from '../../utils/catchError' ;
1615import { ErrorType } from '../../utils/fetcher' ;
1716
@@ -28,23 +27,24 @@ const LoginView = () => {
2827 const navigate = useNavigate ( ) ;
2928 const auth = useAuth ( ) ;
3029 const Alert = useAlert ( ) ;
31- const Loader = useLoader ( ) ;
3230 const { t } = useTranslation ( 'login' ) ;
3331
34- const { register, handleSubmit, formState : { isSubmitting } , control, setValue, setFocus } = useForm < FormData > ( 'user' ) ;
32+ const [ loading , setLoading ] = useState ( false ) ;
33+ const [ resetLoading , setResetLoading ] = useState ( false ) ;
34+ const { register, handleSubmit, control, setValue, setFocus } = useForm < FormData > ( 'user' ) ;
3535 const login = useWatch ( { name : 'login' , control } ) ;
3636
3737 /**
3838 * Login handler
3939 */
4040 const onSubmit = ( formData : FormData ) => {
41- Loader . open ( ) ;
41+ setLoading ( true ) ;
4242 auth . signin ( formData . login , formData . password ) . then ( ( ) => {
43- Loader . close ( ) ;
43+ setLoading ( false ) ;
4444 navigate ( '/app/home' , { replace : true } ) ;
4545 } ) . catch ( ( response : string ) => {
4646 catchError ( Alert ) ( response ) ;
47- Loader . close ( ) ;
47+ setLoading ( false ) ;
4848 } ) ;
4949 } ;
5050
@@ -53,40 +53,39 @@ const LoginView = () => {
5353 const user = localStorage . getItem ( 'user' ) ;
5454 const token = localStorage . getItem ( 'token' ) || '' ;
5555 if ( ! auth . authed && user ) {
56- Loader . open ( ) ;
56+ setLoading ( true ) ;
5757 auth . signin ( user , token ) . catch ( ( error : ErrorType ) => {
5858 localStorage . removeItem ( 'user' ) ;
5959 localStorage . removeItem ( 'token' ) ;
6060 navigate ( '/login' , { replace : true } ) ;
6161 catchError ( Alert ) ( error ) ;
6262 } ) . finally ( ( ) => {
63- Loader . close ( ) ;
63+ setLoading ( false ) ;
6464 } ) ;
6565 }
6666 if ( auth . authed ) {
6767 navigate ( '/app/home' , { replace : true } ) ;
6868 }
69- } , [ Alert , Loader , auth , navigate , t ] ) ;
69+ } , [ Alert , auth , navigate , t ] ) ;
7070
7171 // Password reset
7272 const resetPassword = useCallback ( async ( ) => {
7373 if ( ! login ) {
7474 Alert . open ( 'error' , t ( 'pleaseEnterLogin' ) ) ;
7575 return ;
7676 }
77- Loader . open ( ) ;
77+ setLoading ( true ) ;
7878 await UserRoutes . sendPasswordResetMail ( login ) . then ( ( ) => {
7979 Alert . open ( 'success' , t ( 'passwordResetMailSent' ) ) ;
8080 } ) . catch ( catchError ( Alert ) ) ;
81- Loader . close ( ) ;
82- } , [ Alert , Loader , login , t ] ) ;
81+ setLoading ( false ) ;
82+ } , [ Alert , login , t ] ) ;
8383
8484 // Password reset form
8585 const [ resetDialogOpen , setResetDialogOpen ] = useState ( false ) ;
8686 const {
8787 register : resetRegister ,
8888 handleSubmit : resetHandleSubmit ,
89- formState : { isSubmitting : resetIsSubmitting } ,
9089 control : resetControl ,
9190 reset : resetForm ,
9291 } = useForm < ResetFormData > ( 'user' ) ;
@@ -104,9 +103,11 @@ const LoginView = () => {
104103 const url = new URL ( window . location . href ) ;
105104 const code = url . searchParams . get ( 'reset' ) ;
106105
106+ setResetLoading ( true ) ;
107107 UserRoutes . resetPassword ( login , code || '' , formData . password ) . then ( ( ) => {
108108 Alert . open ( 'success' , t ( 'passwordResetSuccess' ) ) ;
109109 } ) . catch ( catchError ( Alert ) ) . finally ( ( ) => {
110+ setResetLoading ( false ) ;
110111 setResetDialogOpen ( false ) ;
111112 resetForm ( ) ;
112113 } ) ;
@@ -175,7 +176,7 @@ const LoginView = () => {
175176 < Box my = { 2 } >
176177 < LoadingButton
177178 color = "primary"
178- loading = { isSubmitting }
179+ loading = { loading }
179180 fullWidth
180181 size = "large"
181182 type = "submit"
@@ -210,7 +211,7 @@ const LoginView = () => {
210211 < Button onClick = { closeResetDialog } > { t ( 'common:cancel' ) } </ Button >
211212 < LoadingButton
212213 color = "primary"
213- loading = { resetIsSubmitting }
214+ loading = { resetLoading }
214215 type = "submit"
215216 variant = "contained"
216217 >
0 commit comments