'use client' import * as React from 'react' import { zodResolver } from '@hookform/resolvers/zod' import { useForm } from 'react-hook-form' import * as z from 'zod' import { graphql } from '@/lib/gql/generates' import { useGraphQLForm } from '@/lib/tabby/gql' import { Button } from '@/components/ui/button' import { Form, FormControl, FormField, FormItem, FormMessage } from '@/components/ui/form' import { Input } from '@/components/ui/input' const createInvitation = graphql(/* GraphQL */ ` mutation CreateInvitation($email: String!) { createInvitation(email: $email) } `) const formSchema = z.object({ email: z.string().email('Invalid email address') }) export default function CreateInvitationForm({ onCreated }: { onCreated: () => void }) { const form = useForm>({ resolver: zodResolver(formSchema) }) const { isSubmitting } = form.formState const { onSubmit } = useGraphQLForm(createInvitation, { onSuccess: () => { form.reset({ email: '' }) onCreated() }, onError: (path, message) => form.setError(path as any, { message }) }) return (
( )} />
) }