|
@@ -1,10 +1,10 @@
|
1
|
1
|
import * as React from 'react';
|
2
|
|
-// import toast, { Toaster } from 'react-hot-toast';
|
3
|
|
-import { Toaster } from 'react-hot-toast';
|
|
2
|
+import toast, { Toaster } from 'react-hot-toast';
|
4
|
3
|
|
5
|
4
|
import {
|
6
|
5
|
Paper, Box, Grid, Checkbox, FormControlLabel, Typography,
|
7
|
|
- TextField, CssBaseline, Button, Avatar
|
|
6
|
+ TextField, CssBaseline, Button, Avatar,
|
|
7
|
+ Backdrop, CircularProgress
|
8
|
8
|
} from '@mui/material'
|
9
|
9
|
|
10
|
10
|
import { createTheme, ThemeProvider } from '@mui/material/styles';
|
|
@@ -18,18 +18,18 @@ import useAuth from '../Auth/useAuth';
|
18
|
18
|
import { useFormik } from 'formik';
|
19
|
19
|
import * as Yup from 'yup';
|
20
|
20
|
|
21
|
|
-import { HTTP_ } from '../Utils/HTTP.js'
|
|
21
|
+import { Service } from '../Utils/HTTP.js'
|
22
|
22
|
|
23
|
23
|
const LoginSchema = Yup.object().shape({
|
24
|
24
|
email : Yup
|
25
|
25
|
.string()
|
26
|
|
- .email('El correo debe ser válido')
|
27
|
|
- .required('El correo es requerido'),
|
|
26
|
+ // .email('El correo debe ser válido')
|
|
27
|
+ .required('El correo o usuario es requerido'),
|
28
|
28
|
|
29
|
29
|
password : Yup
|
30
|
30
|
.string()
|
31
|
31
|
.required('El campo contraseña es requerido')
|
32
|
|
- .min(6, 'La contraseña debe contener mínimo 6 caracteres')
|
|
32
|
+ .min(5, 'La contraseña debe contener mínimo 5 caracteres')
|
33
|
33
|
})
|
34
|
34
|
|
35
|
35
|
const theme = createTheme();
|
|
@@ -39,22 +39,40 @@ export function Login() {
|
39
|
39
|
let auth = useAuth();
|
40
|
40
|
let navigate = useNavigate()
|
41
|
41
|
|
|
42
|
+ const [open, setOpen] = React.useState(false);
|
|
43
|
+ const handleClose = () => {
|
|
44
|
+ setOpen(false);
|
|
45
|
+ };
|
|
46
|
+
|
42
|
47
|
const formik = useFormik({
|
43
|
48
|
initialValues: {
|
44
|
49
|
email: '',
|
45
|
50
|
password: '',
|
46
|
51
|
},
|
47
|
52
|
validationSchema: LoginSchema,
|
48
|
|
- onSubmit: (values) => {
|
|
53
|
+ onSubmit: async (values) => {
|
49
|
54
|
let { email, password } = values
|
50
|
|
- console.log(email,password);
|
51
|
|
- // let request = new HTTP('/user?' + `user=${email}&password=${password}`)
|
52
|
|
- let request = new HTTP_()
|
53
|
|
- request.get_()
|
|
55
|
+ setOpen(true)
|
|
56
|
+
|
|
57
|
+ let request = new Service(`/user?user=${email}&password=${password}`)
|
|
58
|
+ request
|
|
59
|
+ .post({})
|
|
60
|
+ .then( () => {
|
|
61
|
+ toast.success('Bienvenido!!')
|
|
62
|
+
|
|
63
|
+ setTimeout( () => {
|
|
64
|
+ setOpen(false)
|
|
65
|
+ auth.login(values)
|
|
66
|
+ }, 2000)
|
|
67
|
+ })
|
|
68
|
+ .catch( err => {
|
|
69
|
+ setOpen(false)
|
|
70
|
+ toast.error("Ups! usuario o contraseña incorrectos")
|
|
71
|
+ console.log("ERROR ", err)
|
|
72
|
+ })
|
|
73
|
+
|
54
|
74
|
// toast.success('Bienvenido!!')
|
55
|
|
- // toast.error("This didn't work.")
|
56
|
75
|
// return navigate('/dashboard/home')
|
57
|
|
- auth.login(values)
|
58
|
76
|
},
|
59
|
77
|
});
|
60
|
78
|
|
|
@@ -84,6 +102,7 @@ export function Login() {
|
84
|
102
|
}}
|
85
|
103
|
/>
|
86
|
104
|
<Grid item xs={12} sm={8} md={5} component={Paper} elevation={6} square>
|
|
105
|
+
|
87
|
106
|
<Box
|
88
|
107
|
sx={{
|
89
|
108
|
my: 8,
|
|
@@ -168,6 +187,15 @@ export function Login() {
|
168
|
187
|
position="top-left"
|
169
|
188
|
reverseOrder={false}
|
170
|
189
|
/>
|
|
190
|
+ <Backdrop
|
|
191
|
+ sx={{ color: '#fd4b4b', zIndex: (theme) => theme.zIndex.drawer + 1 }}
|
|
192
|
+ open={open}
|
|
193
|
+ onClick={handleClose}
|
|
194
|
+ >
|
|
195
|
+ <CircularProgress color="inherit" />
|
|
196
|
+ </Backdrop>
|
|
197
|
+
|
171
|
198
|
</ThemeProvider>
|
|
199
|
+
|
172
|
200
|
);
|
173
|
201
|
}
|