'use client'; import { useState, useTransition } from 'react'; import { isRedirectError } from 'next/dist/client/components/redirect-error'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { Button } from '@kit/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from '@kit/ui/dialog'; 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 { Trans } from '@kit/ui/trans'; import { CreateTeamSchema } from '../schema/create-team.schema'; import { createTeamAccountAction } from '../server/actions/create-team-account-server-actions'; export function CreateTeamAccountDialog( props: React.PropsWithChildren<{ isOpen: boolean; setIsOpen: (isOpen: boolean) => void; }>, ) { return ( e.preventDefault()} onInteractOutside={(e) => e.preventDefault()} > props.setIsOpen(false)} /> ); } function CreateOrganizationAccountForm(props: { onClose: () => void }) { const [error, setError] = useState(); const [pending, startTransition] = useTransition(); const form = useForm>({ defaultValues: { name: '', }, resolver: zodResolver(CreateTeamSchema), }); return (
{ startTransition(async () => { try { const { error } = await createTeamAccountAction(data); if (error) { setError(true); } } catch (error) { if (!isRedirectError(error)) { setError(true); } } }); })} >
{ return ( ); }} />
); } function CreateOrganizationErrorAlert() { return ( ); }