import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faUser } from '@fortawesome/free-solid-svg-icons'; import { Form, Button, Alert, FloatingLabel, Row, Col } from 'react-bootstrap'; import PasswordInput from '@/components/Auth/PasswordInput.jsx'; import { useContext, useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import { AuthContext } from "@/context/AuthContext.jsx"; import CustomContainer from '@/components/CustomContainer.jsx'; import ContentWrapper from '@/components/ContentWrapper.jsx'; import '@/css/LoginForm.css'; const LoginForm = () => { const { login, error } = useContext(AuthContext); const navigate = useNavigate(); const [formState, setFormState] = useState({ emailOrUserName: "", password: "", keepLoggedIn: false }); const handleChange = (e) => { const { name, value } = e.target; setFormState((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (e) => { e.preventDefault(); const isEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(formState.emailOrUserName); const loginBody = { password: formState.password, keepLoggedIn: Boolean(formState.keepLoggedIn), }; if (isEmail) { loginBody.email = formState.emailOrUserName; } else { loginBody.userName = formState.emailOrUserName; } try { await login(loginBody); navigate("/"); } catch (err) { console.error("Error de login:", err.message); } }; return (

Inicio de sesión

Usuario o Email } >
{ formState.keepLoggedIn = e.target.checked; setFormState({ ...formState }) }} /> {/* Olvidé mi contraseña */}
{error && ( {error} )}
); }; export default LoginForm;