import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { Link, useNavigate } from "react-router"; import { z } from "zod"; import { PasswordInput } from "~/components/custom-ui/password-input"; import { ThemeToggle } from "~/components/theme/theme-toggle"; import { Button, buttonVariants } from "~/components/ui/button"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "~/components/ui/card"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "~/components/ui/form"; import { Input } from "~/components/ui/input"; import auth from "~/lib/api/client/auth"; const schema = z.object({ email: z.string().email(), displayName: z.string().min(1).optional(), username: z .string() .min(3) .regex(/^[a-zA-Z0-9_.]+$/), password: z.string().min(8), }); export default function Register() { let navigate = useNavigate(); const form = useForm>({ resolver: zodResolver(schema), }); async function onSubmit(values: z.infer) { await auth.register(values); navigate("/login"); } return ( Create an account Please fill out the form below to create an account.
( Email )} /> ( Username )} /> ( Display Name )} /> ( Password )} />
Already have an account? Log In
); }