import { lazy } from 'react'; import { Plural, Trans } from '@lingui/react/macro'; import { motion } from 'framer-motion'; import { ArrowLeftIcon, BanIcon, DownloadCloudIcon } from 'lucide-react'; import { Link } from 'react-router'; import { useCurrentEnvelopeRender } from '@documenso/lib/client-only/providers/envelope-render-provider'; import { FieldToolTip } from '@documenso/ui/components/field/field-tooltip'; import PDFViewerKonvaLazy from '@documenso/ui/components/pdf-viewer/pdf-viewer-konva-lazy'; import { Button } from '@documenso/ui/primitives/button'; import { Separator } from '@documenso/ui/primitives/separator'; import { SignFieldDropdownDialog } from '~/components/dialogs/sign-field-dropdown-dialog'; import { SignFieldEmailDialog } from '~/components/dialogs/sign-field-email-dialog'; import { SignFieldInitialsDialog } from '~/components/dialogs/sign-field-initials-dialog'; import { SignFieldNameDialog } from '~/components/dialogs/sign-field-name-dialog'; import { SignFieldNumberDialog } from '~/components/dialogs/sign-field-number-dialog'; import { SignFieldSignatureDialog } from '~/components/dialogs/sign-field-signature-dialog'; import { SignFieldTextDialog } from '~/components/dialogs/sign-field-text-dialog'; import { EnvelopeItemSelector } from '../envelope-editor/envelope-file-selector'; import EnvelopeSignerForm from '../envelope-signing/envelope-signer-form'; import { EnvelopeSignerHeader } from '../envelope-signing/envelope-signer-header'; import { useRequiredEnvelopeSigningContext } from './envelope-signing-provider'; const EnvelopeSignerPageRenderer = lazy( async () => import('../envelope-signing/envelope-signer-page-renderer'), ); export const DocumentSigningPageViewV2 = () => { const { envelopeItems, currentEnvelopeItem, setCurrentEnvelopeItem } = useCurrentEnvelopeRender(); const { envelope, recipientFields, recipientFieldsRemaining, showPendingFieldTooltip } = useRequiredEnvelopeSigningContext(); return (
{/* Main Content Area */}
{/* Left Section - Step Navigation */}

Sign Document {recipientFieldsRemaining.length} fields remaining

{/* Quick Actions. */}

Actions

{/* Todo: Allow selecting which document to download and/or the original */} {/* Todo: Envelopes */}
{/* Footer of left sidebar. */}
{/* Main Content - Changes based on current step */}
{/* Horizontal envelope item selector */}
{envelopeItems.map((doc, i) => ( field.envelopeItemId === doc.id) .length } /> } isSelected={currentEnvelopeItem?.id === doc.id} buttonProps={{ onClick: () => setCurrentEnvelopeItem(doc.id) }} /> ))}
{/* Document View */}
{currentEnvelopeItem && showPendingFieldTooltip && recipientFieldsRemaining.length > 0 && recipientFieldsRemaining[0]?.envelopeItemId === currentEnvelopeItem?.id && ( Click to insert field )} {currentEnvelopeItem ? ( ) : (

No documents found

)}
); };