diff --git a/web-ui/web-react/src/components/LogIn.js b/web-ui/web-react/src/components/LogIn.js index 8777a82f..b70037de 100644 --- a/web-ui/web-react/src/components/LogIn.js +++ b/web-ui/web-react/src/components/LogIn.js @@ -1,45 +1,219 @@ -import React, { useState } from 'react'; +import React, { Component, Fragment, useRef } from 'react'; +import Cookies from 'universal-cookie'; import { InputText } from 'primereact/inputtext'; +import { Button } from 'primereact/button'; -const LogIn = () => { +const baseUrl = "http://localhost:4000/user/loginUser"; +const cookies = new Cookies(); - const [email, setEmail] = useState(""); - const [password, setPassword] = useState(""); +class Login extends Component { + constructor(props) { + super(props); + this.state = { + form: { + email: '', + password: '' + }, + errorEmail: false, + errorPassword: false, + logged: null + } + } + handleChange = async e => { + await this.setState({ + form: { + ...this.state.form, + [e.target.name]: e.target.value + } + }); + } - const iniciarSesion = () =>{ + validaciones = (data) => { + let error = true; + if (data.email == '') { + this.setState({ + errorEmail: true + }) + error = true; + } else { + this.setState({ + errorEmail: false + }) + } + if (data.password == '') { + this.setState({ + errorPassword: true + }) + error = true; + } else { + this.setState({ + errorPassword: false + }) + } + + return error; } - + iniciarSesion = async () => { + const data = { + email: this.state.form.email, + password: this.state.form.password + } - return ( -
-
-
-
Iniciar Sesión
-
-
- - + console.log(data); + + if (!this.validaciones(data)) { + this.setState({ + email: true, + password: true + }) + await fetch(baseUrl, { + cache: 'no-cache', + method: 'POST', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json' + } + }) + .then(response => { + if (response.status != 201) + console.log('Ocurrió un error con el servicio: ' + response.status); + else return response.json(); + }) + .then(response => { + console.log(response.message); + + if (response.message) { + const user = response.message; + cookies.set('id', user._id, { path: "/" }); + cookies.set('name', user.name, { path: "/" }); + cookies.set('email', user.email, { path: "/" }); + cookies.set('type', user.user_type, { path: "/" }); + if (user.user_type != '1') { + cookies.set('community_id', user.community_id, { path: "/" }); + } + // alert(`Bienvenido ${user.name}`); + document.getElementById('notification').hidden = true; + document.getElementById('notification2').hidden = false; + + document.getElementById("message2").innerHTML = `Bienvenido ${user.name}`; + + window.location.href = "/"; + } else { + document.getElementById('notification2').hidden = true; + document.getElementById('notification').hidden = false; + + //alert('El usuario o la contraseña no son correctos'); + document.getElementById("message").innerHTML = "El usuario o la contraseña son incorrectos"; + } + }) + .catch(error => { + console.log(error); + }) + } + } + + componentDidMount() { + if (cookies.get('email')) { + window.location.href = "/"; + } + } + + renderErrorMessage = (name) => + name === this.state.errorMessages.name && ( +
{this.state.errorMessages.message}
+ ); + + errors = { + email: "Correo requerido", + pass: "Contraseña requerida" + }; + + render() { + return ( + + + + +
+
+ -
- - + - {/* */} + +
+
+ +
+
Iniciar Sesión
+
+ +
+ +
+
+ + + + +
+ {this.state.errorEmail && ( + Correo electrónico es requerido + )} + +
+
+
+ +
+
+ + + + +
+ {this.state.errorPassword && ( + Contraseña es requerida + )} +
+
+ + +
+
-
-
- - -
+
- {/* */} -
- ); -}; -export default LogIn \ No newline at end of file + + ); + } +} + +export default Login; \ No newline at end of file