// app/register/page.tsx "use client"; import { FormEvent, useState, Suspense } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import Link from "next/link"; import { useAuth } from "@/context/AuthContext"; import { Button, Field, Input } from "@/components/ui/form"; const TOS_VERSION = "2025-12-27"; function RegisterPageContent() { const router = useRouter(); const searchParams = useSearchParams(); const { register, loading } = useAuth(); const [email, setEmail] = useState(""); const [displayName, setDisplayName] = useState(""); const [password, setPassword] = useState(""); const [accepted, setAccepted] = useState(false); const [error, setError] = useState(null); const next = searchParams.get("next") || "/builder"; async function handleSubmit(e: FormEvent) { e.preventDefault(); setError(null); if (!accepted) { setError( "You must accept the Terms and confirm you’re responsible for safe/legal assembly." ); return; } try { await register({ email, password, displayName, acceptedTos: accepted, tosVersion: TOS_VERSION, }); router.push(next); } catch (err: any) { setError( typeof err === "string" ? err : err?.message ?? "Failed to create account" ); } } return (

Join the Battl Builder Beta

Create an account so we can save your builds, watch price drops, and roll out new features to you first.

{error && (
{error}
)} setDisplayName(e.target.value)} /> setEmail(e.target.value)} /> setPassword(e.target.value)} />

Already have an account?{" "} Log in .

); } export default function RegisterPage() { return (
}> ); }