@@ -2,37 +2,33 @@ import React, { useState } from "react";
22import styled from "styled-components" ;
33import FormInput from "./FormInput" ;
44import { useNavigate } from "react-router-dom" ;
5+ import { consultarUsuarioPorCorreo } from "../../api/usuario/administrador" ; // Importa la nueva función
6+
57
68const LoginForm = ( ) => {
79 const navigate = useNavigate ( ) ;
810 const [ correo , setCorreo ] = useState ( "" ) ;
9- const [ password , setPassword ] = useState ( "" ) ;
11+ const [ password , setPassword ] = useState ( "" ) ; // Aquí se ingresa el idInstitucional
12+ const [ errorMsg , setErrorMsg ] = useState ( "" ) ;
1013
1114 const handleSubmit = async ( e ) => {
1215 e . preventDefault ( ) ;
13- // Aquí realiza la llamada a tu API de login con fetch o axios.
14- // Por ejemplo:
15- /*
16+ setErrorMsg ( "" ) ;
1617 try {
17- const response = await fetch('https://localhost:8443/api/auth/login', {
18- method: 'POST',
19- headers: { 'Content-Type': 'application/json' },
20- body: JSON.stringify({ correo, password })
21- });
22- if (!response.ok) throw new Error('Error en la autenticación');
23- const data = await response.json();
24- // Guarda el token en localStorage o maneja la cookie según corresponda
25- localStorage.setItem('token', data.token);
26- // Redirige a la pantalla de administrador
27- navigate('/adminhome');
18+ // Consulta el usuario por su correo institucional
19+ const usuario = await consultarUsuarioPorCorreo ( correo ) ;
20+ // Valida que el idInstitucional (password) ingresado sea igual al del usuario retornado.
21+ if ( usuario && String ( usuario . idInstitucional ) === password ) {
22+ // Si coincide, redirige a la pantalla de administrador
23+ localStorage . setItem ( "token" , "dummy-token" ) ;
24+ navigate ( "/adminhome" ) ;
25+ } else {
26+ setErrorMsg ( "Usuario no encontrado o contraseña incorrecta" ) ;
27+ }
2828 } catch ( error ) {
29+ setErrorMsg ( "Usuario no encontrado o contraseña incorrecta" ) ;
2930 console . error ( error ) ;
30- // Aquí puedes mostrar un mensaje de error en la UI
3131 }
32- */
33- // Para la demostración, simulamos un login exitoso:
34- localStorage . setItem ( "token" , "dummy-token" ) ;
35- navigate ( "/adminhome" ) ;
3632 } ;
3733
3834 return (
@@ -45,15 +41,18 @@ const LoginForm = () => {
4541 < FormInput
4642 label = "CORREO INSTITUCIONAL"
4743 type = "email"
44+ 4845 onChange = { ( e ) => setCorreo ( e . target . value ) }
4946 />
5047 < FormInput
5148 label = "CONTRASEÑA"
5249 type = "password"
50+ placeholder = "idInstitucional"
5351 onChange = { ( e ) => setPassword ( e . target . value ) }
5452 />
5553 < LoginButton type = "submit" > Ingresar</ LoginButton >
5654 </ form >
55+ { errorMsg && < ErrorMessage > { errorMsg } </ ErrorMessage > }
5756 < CvdsLogo
5857 src = "https://cdn.builder.io/api/v1/image/assets/TEMP/a04bfa90ef84cb31360009a48d4d01c2ac370589"
5958 alt = "CVDS Logo"
@@ -93,11 +92,12 @@ const LoginButton = styled.button`
9392 height: 54px;
9493 border-radius: 2px;
9594 border: none;
96- color: #fff ;
95+ color:rgb(22, 45, 255) ;
9796 font-family: "Inter", sans-serif;
9897 font-size: 19px;
9998 font-weight: 700;
10099 margin: 0 auto;
100+ margin-top: 100px;
101101 cursor: pointer;
102102 background-color: #d9ed92;
103103 display: block;
@@ -106,6 +106,14 @@ const LoginButton = styled.button`
106106 }
107107` ;
108108
109+ const ErrorMessage = styled . div `
110+ color: red;
111+ font-size: 16px;
112+ font-weight: bold;
113+ text-align: center;
114+ margin-top: 20px;
115+ ` ;
116+
109117const CvdsLogo = styled . img `
110118 width: 59px;
111119 height: 63px;
0 commit comments