"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { Button } from "@unsend/ui/src/button"; import { Form, FormControl, FormDescription, FormField, FormItem, FormMessage, } from "@unsend/ui/src/form"; import { Input } from "@unsend/ui/src/input"; import { Spinner } from "@unsend/ui/src/spinner"; import { api } from "~/trpc/react"; import { useRouter } from "next/navigation"; const FormSchema = z.object({ name: z.string().min(2, { message: "Team name must be at least 2 characters.", }), }); export default function CreateTeam() { const createTeam = api.team.createTeam.useMutation(); const utils = api.useUtils(); const router = useRouter(); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { name: "", }, }); function onSubmit(data: z.infer) { createTeam.mutate(data, { onSuccess: () => { utils.team.invalidate(); router.replace("/dashboard"); }, }); } return (

Create Team

( {formState.errors.name ? ( ) : ( Request admin to join existing team )} )} />
); }