'use client'; import { useRouter } from 'next/navigation'; import { Loader } from 'lucide-react'; import { useForm } from 'react-hook-form'; import { completeDocumentWithToken } from '@documenso/lib/server-only/document/complete-document-with-token'; import { Document, Field, Recipient } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { Card, CardContent } from '@documenso/ui/primitives/card'; import { Input } from '@documenso/ui/primitives/input'; import { Label } from '@documenso/ui/primitives/label'; import { SignaturePad } from '@documenso/ui/primitives/signature-pad'; import { useRequiredSigningContext } from './provider'; export type SigningFormProps = { document: Document; recipient: Recipient; fields: Field[]; }; export const SigningForm = ({ document, recipient, fields }: SigningFormProps) => { const router = useRouter(); const { fullName, signature, setFullName, setSignature } = useRequiredSigningContext(); const { handleSubmit, formState: { isSubmitting }, } = useForm(); const isComplete = fields.every((f) => f.inserted); const onFormSubmit = async () => { if (!isComplete) { return; } await completeDocumentWithToken({ token: recipient.token, documentId: document.id, }); router.push(`/sign/${recipient.token}/complete`); }; return (
); };