import type { HTMLAttributes } from 'react'; import { useState } from 'react'; import type { MessageDescriptor } from '@lingui/core'; import { Trans, useLingui } from '@lingui/react/macro'; import { motion } from 'framer-motion'; import { parseMessageDescriptor } from '@documenso/lib/utils/i18n'; import { Dialog, DialogClose, DialogContent, DialogFooter } from '@documenso/ui/primitives/dialog'; import { cn } from '../../lib/utils'; import { Button } from '../button'; import { SignaturePad } from './signature-pad'; import { SignatureRender } from './signature-render'; export type SignaturePadDialogProps = Omit, 'onChange'> & { disabled?: boolean; value?: string; onChange: (_value: string) => void; dialogConfirmText?: MessageDescriptor | string; disableAnimation?: boolean; typedSignatureEnabled?: boolean; uploadSignatureEnabled?: boolean; drawSignatureEnabled?: boolean; }; export const SignaturePadDialog = ({ className, value, onChange, disabled = false, disableAnimation = false, typedSignatureEnabled, uploadSignatureEnabled, drawSignatureEnabled, dialogConfirmText, }: SignaturePadDialogProps) => { const { i18n } = useLingui(); const [showSignatureModal, setShowSignatureModal] = useState(false); const [signature, setSignature] = useState(value ?? ''); return (
{value && (
)} setShowSignatureModal(true)} whileHover="onHover" > {!value && !disableAnimation && ( )} setSignature(value)} typedSignatureEnabled={typedSignatureEnabled} uploadSignatureEnabled={uploadSignatureEnabled} drawSignatureEnabled={drawSignatureEnabled} />
); };