'use client'; import { useState, useTransition } from 'react'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from '@kit/ui/alert-dialog'; import { Button } from '@kit/ui/button'; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from '@kit/ui/form'; import { If } from '@kit/ui/if'; import { Input } from '@kit/ui/input'; import { toast } from '@kit/ui/sonner'; import { createTeamAccountAction } from '../lib/server/admin-server-actions'; import { CreateCompanySchema, CreateCompanySchemaType } from '../lib/server/schema/create-company.schema'; import { Trans } from '@kit/ui/trans'; export function AdminCreateCompanyDialog(props: React.PropsWithChildren) { const [pending, startTransition] = useTransition(); const [error, setError] = useState(null); const [open, setOpen] = useState(false); const form = useForm({ resolver: zodResolver(CreateCompanySchema), defaultValues: { name: '', }, mode: 'onChange', }); const onSubmit = (data: CreateCompanySchemaType) => { startTransition(async () => { try { const error = await createTeamAccountAction(data); if (!error) { toast.success('Company creates successfully'); form.reset(); setOpen(false); setError(null); } else { setError('Something went wrong with company creation'); } } catch (e) { setError(e instanceof Error ? e.message : 'Error'); } }); }; return ( {props.children} Create New Company Account Complete the form below to create a new company account.
Error {error} { return ( ); }} /> Cancel
); }