import Button from "@/components/atoms/buttons/Button"; import ErrorMessageLogin from "@/components/atoms/errors/ErrorMessageLogin"; import LoginInput from "@/components/atoms/inputs/LoginInput"; import { useAuth } from "@/lib/auth-context"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { FormEvent, useState } from "react"; export default function LoginForm() { const router = useRouter(); const { login } = useAuth(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [errors, setErrors] = useState({ username: "", password: "", general: "", }); const validate = (): boolean => { const newErrors = { username: "", password: "", general: "" }; let isValid = true; if (!username.trim()) { newErrors.username = "Vui lòng nhập tên đăng nhập"; isValid = false; } if (!password.trim()) { newErrors.password = "Vui lòng nhập mật khẩu"; isValid = false; } else if (password.length < 4) { newErrors.password = "Mật khẩu phải có ít nhất 4 ký tự"; isValid = false; } setErrors(newErrors); return isValid; }; const handleSubmit = (e: FormEvent) => { e.preventDefault(); if (!validate()) return; const success = login(username, password); if (success) { router.push("/"); } else { setErrors({ username: "", password: "", general: "Tên đăng nhập hoặc mật khẩu không đúng", }); } }; return (
{/* Error Message */} {errors.general && }
{/* Username Input */} { setUsername(e.target.value); setErrors({ ...errors, username: "", general: "" }); }} errors={errors.username} /> {errors.username && ( )}
{/* Password Input */}
{ setPassword(e.target.value); setErrors({ ...errors, password: "", general: "" }); }} errors={errors.password} /> {errors.password && ( )}
{/* Buttons */}
{/* Login Button */} {/* Register Button */} Đăng ký tài khoản
); }