[SignInPage] disable input while submitting

This commit is contained in:
Dawid Wysokiński 2021-03-08 20:26:06 +01:00
parent 41f2bb891b
commit b0ffb2b43f
1 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,4 @@
import { useState } from 'react';
import { useForm } from 'react-hook-form';
import { useSnackbar } from 'material-ui-snackbar-provider';
import { ApolloError } from '@apollo/client';
@ -24,12 +25,14 @@ type FormData = {
};
const SignInPage = () => {
const [isSubmitting, setIsSubmitting] = useState<boolean>(false);
const snackbar = useSnackbar();
const { signIn } = useAuth();
const { register, errors, handleSubmit } = useForm<FormData>();
const classes = useStyles();
const onSubmit = async (data: FormData) => {
setIsSubmitting(true);
try {
await signIn(data.email, data.password, data.staySignedIn, user => {
if (user.role !== Role.Admin) {
@ -45,6 +48,7 @@ const SignInPage = () => {
: e.message
);
}
setIsSubmitting(false);
};
return (
@ -88,7 +92,12 @@ const SignInPage = () => {
label="Pozostań zalogowany"
/>
</FormGroup>
<Button variant="contained" color="primary" type="submit">
<Button
disabled={isSubmitting}
variant="contained"
color="primary"
type="submit"
>
Zaloguj się
</Button>
</form>