'use client'; import React, { useState } from 'react'; import { useRouter } from 'next/navigation'; import IconLockDots from '@/components/icon/icon-lock-dots'; import IconMail from '@/components/icon/icon-mail'; import IconUser from '@/components/icon/icon-user'; const API_BASE = process.env.NEXT_PUBLIC_API_BASE_URL?.replace(/\/$/, '') || 'https://ebay.backend.data4autos.com'; const ComponentsAuthRegisterForm = () => { const router = useRouter(); const [name, setName] = useState(''); const [phonenumber, setPhonenumber] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [loading, setLoading] = useState(false); const [err, setErr] = useState(null); const [msg, setMsg] = useState(null); const submitForm = async (e: React.FormEvent) => { e.preventDefault(); setErr(null); setMsg(null); if (!name || !email || !password || !phonenumber) { setErr('Please fill in all fields.'); return; } setLoading(true); try { const res = await fetch(`${API_BASE}/api/auth/signup`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name, email, password, phonenumber, }), }); const data = await res.json(); if (!res.ok) throw new Error(data?.message || 'Signup failed'); setMsg('Signup successful!'); setTimeout(() => router.push('/login'), 1000); } catch (e: any) { setErr(e?.message || 'Something went wrong.'); } finally { setLoading(false); } }; return (
{/* Alerts */} {err && (
{err}
)} {msg && (
{msg}
)}
{/* Name */}
setName(e.target.value)} className="w-full ps-10 py-3 bg-[rgba(7,13,30,0.7)] border border-white/15 rounded-lg text-white placeholder:text-gray-400 focus:outline-none focus:border-white/30" />
{/* Email */}
setEmail(e.target.value)} className="w-full ps-10 py-3 bg-[rgba(7,13,30,0.7)] border border-white/15 rounded-lg text-white placeholder:text-gray-400 focus:outline-none focus:border-white/30" />
{/* Password */}
setPassword(e.target.value)} className="w-full ps-10 py-3 bg-[rgba(7,13,30,0.7)] border border-white/15 rounded-lg text-white placeholder:text-gray-400 focus:outline-none focus:border-white/30" />
{/* Phone */}
setPhonenumber(e.target.value)} className="w-full ps-10 py-3 bg-[rgba(7,13,30,0.7)] border border-white/15 rounded-lg text-white placeholder:text-gray-400 focus:outline-none focus:border-white/30" /> 📞
{/* Submit */}
); }; export default ComponentsAuthRegisterForm;