'use client'; import IconLockDots from '@/components/icon/icon-lock-dots'; import IconMail from '@/components/icon/icon-mail'; import { useRouter } from 'next/navigation'; import React, {useState} from 'react'; import axios from 'axios'; import Link from 'next/link'; import { Eye, EyeOff } from "lucide-react"; import { ApiServerBaseUrl } from '@/utils/baseurl.utils'; const ComponentsAuthLoginForm = () => { const router = useRouter(); // ✅ Form state as object const [formData, setFormData] = useState({ email: '', password: '', subscribe: false, }); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [err, setErr] = useState(null); const [msg, setMsg] = useState(null); const [showPassword, setShowPassword] = useState(false); // ✅ Handle input changes const handleChange = (e: React.ChangeEvent) => { const { name, value, type, checked } = e.target; setFormData((prev) => ({ ...prev, [name]: type === 'checkbox' ? checked : value, })); }; //submit form const submitForm = async (e: React.FormEvent) => { e.preventDefault(); setErr(null); setMsg(null); if (!formData.email || !formData.password) { setErr('Please enter email and password.'); return; } setLoading(true); try { const res = await axios.post(`${ApiServerBaseUrl}/auth/login`, formData); // Assuming backend returns token const data = res.data; console.log('Login success:', data); localStorage.setItem('token', data.token); router.push('/'); } catch (err: any) { if (err.response) { setErr(err.response.data.error || 'Login failed'); } else { setErr(err.message); } } finally { setLoading(false); } }; return (
{/* Alerts */} {err &&
{err}
} {msg &&
{msg}
}
{/* 👁️ Eye toggle (right) */}
Forgot Password?
); }; export default ComponentsAuthLoginForm;