/** * @file app/(auth)/register/page.tsx * @description Client component rendering the registration page, handling form submissions, account creation logic, error handling, and navigation. */ "use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import Link from "next/link"; import Image from "next/image"; import { registerUser } from "@/lib/services/auth.service"; /** * Renders the user registration interface and manages sign-up form state. * * @returns {JSX.Element} The rendered registration page component. */ export default function RegisterPage() { const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const router = useRouter(); /** * Handles user registration form submission, validates form data via auth service, * and navigates to summary page on successful registration. * * @param {React.SubmitEvent} event - The form submission event. * @returns {Promise} */ async function handleSubmit(event: React.SubmitEvent) { event.preventDefault(); setError(null); setLoading(true); const formData = new FormData(event.currentTarget); const payload = Object.fromEntries(formData.entries()); const result = await registerUser(payload); if (result.error) { setError(result.error); setLoading(false); } else { router.push("/"); } } return (
Waveform Logo

Create an Account

Get started with Waveform now.

{/* Error Message */} {error && (
{error}
)} {/* Form */}

Already have an account?{" "} Sign In

); }