import { useState } from "react"; import { Layout } from "../components/Layout"; import type { LoginProps } from "../types/Login"; import { Eye, EyeOff } from "lucide-icons-react"; import api from "../Api"; import { useNavigate } from "react-router-dom"; import toast from "react-hot-toast"; export const Login = () => { const [form, setForm] = useState({ email: "", password: "" }); const [showPassword, setShowPassword] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const navigate = useNavigate(); const handleChange = (e: React.ChangeEvent) => { setForm({ ...form, [e.target.name]: e.target.value }); }; const handleShowPassword = () => { setShowPassword(!showPassword); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setLoading(true); try { await api.post("/api/auth/login", { username: form.email, password: form.password }); navigate("/"); toast.success("Login realizado com sucesso!"); } catch (err: any) { const message = err?.response?.data?.message || "Falha ao autenticar. Verifique as credenciais."; setError(message); toast.error(message); } finally { setLoading(false); } }; return ( Logo
{error &&

{error}

}
); }; const Styles = { layout: "h-screen flex flex-col gap-4 justify-center animate-fade-up", logo: "w-36 h-36 mx-auto mb-4", card: "w-96 p-8 shadow-lg rounded-lg border border-cardBorder bg-card", label: "block mb-2 text-md font-medium text-text", inputWrapper: "relative", input: "bg-gray-50 border border-cardBorder text-text text-md rounded-lg outline-none block w-full p-2.5", iconButton: "absolute right-3 top-1/2 text-text p-1 focus:outline-none", button: "w-full bg-accent p-2 rounded-md mt-4 text-white font-bold text-lg hover:bg-hover transition duration-150", };