import CustomContainer from "@/components/layout/CustomContainer"; import { useAuth } from "@/hooks/useAuth"; import PasswordInput from "./PasswordInput"; import { Alert } from "react-bootstrap"; import CustomCheckbox from "./CustomCheckbox"; import { useState } from "react"; import { useNavigate } from "react-router-dom"; import PropTypes from "prop-types"; const LoginForm = () => { const { login, error } = useAuth(); 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 sesion


{error && ( {error} )}
setFormState(prev => ({ ...prev, keepLoggedIn: newValue }))} label="Mantener sesión iniciada" />
); } LoginForm.propTypes = { emailOrUsername: PropTypes.string, password: PropTypes.string, }; export default LoginForm;