"use client" import { useOnboarding } from "./onboarding-context" import { useAuth } from "@lib/auth-context" import Link from "next/link" import { useEffect, useState } from "react" import { CheckIcon } from "lucide-react" import { AnimatePresence, motion } from "motion/react" import { NavMenu } from "./nav-menu" import { authClient } from "@lib/auth" export function NameForm() { const { nextStep, totalSteps, getStepNumberFor } = useOnboarding() const { user } = useAuth() const [name, setName] = useState(user?.name ?? "") useEffect(() => { if (!name && user?.name) { setName(user.name) } }, [name, user?.name]) function handleNext(): void { const trimmed = name.trim() if (!trimmed) { nextStep() return } nextStep() void authClient.updateUser({ name: trimmed }).catch((error: unknown) => { console.error("Failed to update user name during onboarding:", error) }) } function handleSubmit(e: React.FormEvent): void { e.preventDefault() handleNext() } if (!user) { return (
Step {getStepNumberFor("name")} of {totalSteps}
What should we call you?