'use client'; import React, { useState } from 'react'; import { useRouter, useSearchParams } from 'next/navigation'; import IconLockDots from '@/components/icon/icon-lock-dots'; import IconMail from '@/components/icon/icon-mail'; import Link from 'next/link'; import { Eye, EyeOff } from 'lucide-react'; import { FcGoogle } from 'react-icons/fc'; const ComponentsAuthLoginForm = () => { const router = useRouter(); const searchParams = useSearchParams(); const nextUrl = searchParams.get('next') || '/'; const [formData, setFormData] = useState({ email: '', password: '', }); const [loading, setLoading] = useState(false); const [err, setErr] = useState(null); const [msg, setMsg] = useState(null); const [showPassword, setShowPassword] = useState(false); const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; 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 { // ✅ SAME backend logic as your old working code const res = await fetch( 'https://api.socialbuddy.co/api/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, credentials: 'same-origin', body: JSON.stringify(formData), } ); const contentType = res.headers.get('content-type') || ''; const data = contentType.includes('application/json') ? await res.json() : await res.text(); if (!res.ok) { throw new Error( (typeof data === 'object' && (data?.message || data?.error)) || `Login failed (${res.status})` ); } // ✅ Preserve existing storage behavior try { sessionStorage.setItem('USERID', data.userid); sessionStorage.setItem('EBAYSTOREID', data.store?.urlPath); localStorage.setItem('data4auto_uid', data.userid); localStorage.setItem('d4a_email', data.email); data?.payment?.stripeSessionId && localStorage.setItem( 'payment_session', data.payment.stripeSessionId ); } catch {} setMsg('Login successful!'); setTimeout(() => router.push(nextUrl), 500); } catch (e: any) { setErr(e?.message || 'Login failed'); } finally { setLoading(false); } }; return (
{/* Alerts */} {err && (
{err}
)} {msg && (
{msg}
)}
{/* Logo */}
Logo

Sign in to SocialBuddy

{/* Email */}
{/* Password */}
{/* Forgot password */}
Forgot Password?
{/* Login button */} {/* Divider */}
or
{/* Google Sign-in */}
Continue with Google
{/* Footer */}
Don’t have an account?{' '} SIGN UP
); }; export default ComponentsAuthLoginForm;