import { zodResolver } from '@hookform/resolvers/zod'; import { msg } from '@lingui/core/macro'; import { Trans, useLingui } from '@lingui/react/macro'; import { createCallable } from 'react-call'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; import type { TDropdownFieldMeta } from '@documenso/lib/types/field-meta'; import { Button } from '@documenso/ui/primitives/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@documenso/ui/primitives/dialog'; import { Form, FormControl, FormField, FormItem, FormMessage, } from '@documenso/ui/primitives/form/form'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@documenso/ui/primitives/select'; const ZSignFieldDropdownFormSchema = z.object({ dropdown: z.string().min(1, { message: msg`Option is required`.id }), }); type TSignFieldDropdownFormSchema = z.infer; export type SignFieldDropdownDialogProps = { fieldMeta: TDropdownFieldMeta; }; export const SignFieldDropdownDialog = createCallable( ({ call, fieldMeta }) => { const { t } = useLingui(); const values = fieldMeta.values?.map((value) => value.value) ?? []; const form = useForm({ resolver: zodResolver(ZSignFieldDropdownFormSchema), defaultValues: { dropdown: fieldMeta.defaultValue, }, }); return ( (!value ? call.end(null) : null)}> Sign Dropdown Field Select a value to sign into the field
call.end(data.dropdown))}>
( )} />
); }, );