"use client"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { useRouter } from "next/navigation"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle, CardDescription, } from "@/components/ui/card"; import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { RegisterSchema, registerUser } from "@/lib/api"; import { useState } from "react"; export default function RegisterPage() { const router = useRouter(); const [error, setError] = useState(null); const form = useForm>({ resolver: zodResolver(RegisterSchema), defaultValues: { username: "", email: "", password: "" }, }); async function onSubmit(values: z.infer) { try { setError(null); await registerUser(values); // You can automatically log the user in here or just redirect them router.push("/login"); } catch { setError("Username or email may already be taken."); } } return ( Create an Account Enter your details to register.
{/* ... Form fields for username, email, and password ... */} ( Username )} /> ( Email )} /> ( Password )} /> {error && (

{error}

)}

Already have an account?{" "} Login

); }