"use client"; import { useState } from "react"; import { signIn } from "next-auth/react"; export default function AuthPage() { const [loginEmail, setLoginEmail] = useState(""); const [loginPassword, setLoginPassword] = useState(""); const [loginMessage, setLoginMessage] = useState(""); const [loginLoading, setLoginLoading] = useState(false); const [name, setName] = useState(""); const [signupEmail, setSignupEmail] = useState(""); const [signupPassword, setSignupPassword] = useState(""); const [slug, setSlug] = useState("storeshifted"); const [signupMessage, setSignupMessage] = useState(""); const [signupLoading, setSignupLoading] = useState(false); async function handleLogin(e: React.FormEvent) { e.preventDefault(); setLoginLoading(true); setLoginMessage(""); const res = await signIn("credentials", { email: loginEmail, password: loginPassword, redirect: true, callbackUrl: "/connect", }); if (res?.error) setLoginMessage("Invalid credentials."); setLoginLoading(false); } async function handleSignup(e: React.FormEvent) { e.preventDefault(); setSignupLoading(true); setSignupMessage(""); try { const res = await fetch("/api/auth/signup", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name, email: signupEmail, password: signupPassword, slug, }), }); const data = await res.json(); if (!res.ok) throw new Error(data.error || "Sign up failed"); await signIn("credentials", { email: signupEmail, password: signupPassword, redirect: true, callbackUrl: "/connect", }); } catch (err: any) { setSignupMessage(err.message || "Sign up failed."); } finally { setSignupLoading(false); } } return (

Sign In / Sign Up

Sign In

setLoginEmail(e.target.value)} /> setLoginPassword(e.target.value)} /> {loginMessage ?
{loginMessage}
: null}

Create Account

setName(e.target.value)} /> setSignupEmail(e.target.value)} /> setSignupPassword(e.target.value)} /> setSlug(e.target.value)} /> {signupMessage ?
{signupMessage}
: null}
Just shopping? Create a customer account
); }