import { useMemo } from 'react'; import { Plural, Trans } from '@lingui/react/macro'; import { FieldType, RecipientRole } from '@prisma/client'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; import { RadioGroup, RadioGroupItem } from '@documenso/ui/primitives/radio-group'; import { SignaturePadDialog } from '@documenso/ui/primitives/signature-pad/signature-pad-dialog'; import { useEmbedSigningContext } from '~/components/embed/embed-signing-context'; import { useRequiredEnvelopeSigningContext } from '../document-signing/envelope-signing-provider'; export default function EnvelopeSignerForm() { const { fullName, signature, setFullName, setSignature, envelope, recipientFields, recipient, assistantFields, assistantRecipients, selectedAssistantRecipient, setSelectedAssistantRecipientId, } = useRequiredEnvelopeSigningContext(); const { isNameLocked, isEmailLocked } = useEmbedSigningContext() || {}; const hasSignatureField = useMemo(() => { return recipientFields.some((field) => field.type === FieldType.SIGNATURE); }, [recipientFields]); const isSubmitting = false; if (recipient.role === RecipientRole.VIEWER) { return null; } if (recipient.role === RecipientRole.ASSISTANT) { return (
{ setSelectedAssistantRecipientId(Number(value)); }} > {assistantRecipients .filter((r) => r.fields.length > 0) .map((r) => (

{r.email}

field.recipientId === r.id).length} one="# field" other="# fields" />
))}
); } return (
!isNameLocked && setFullName(e.target.value.trimStart())} />
{hasSignatureField && (
setSignature(v ?? '')} typedSignatureEnabled={envelope.documentMeta.typedSignatureEnabled} uploadSignatureEnabled={envelope.documentMeta.uploadSignatureEnabled} drawSignatureEnabled={envelope.documentMeta.drawSignatureEnabled} />
)}
); }