'use client'; import { useState } from 'react'; import dynamic from 'next/dynamic'; import { zodResolver } from '@hookform/resolvers/zod'; import { Loader } from 'lucide-react'; import { useForm } from 'react-hook-form'; import { Document, User } 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 { AddFieldsFormPartial } from './edit-document/add-fields'; import { AddSignersFormPartial } from './edit-document/add-signers'; import { TEditDocumentFormSchema, ZEditDocumentFormSchema } from './edit-document/types'; const PDFViewer = dynamic(async () => import('~/components/(dashboard)/pdf-viewer/pdf-viewer'), { ssr: false, loading: () => (

Loading document...

), }); const MAX_STEP = 2; export type EditDocumentFormProps = { className?: string; user: User; document: Document; }; export const EditDocumentForm = ({ className, document, user: _user }: EditDocumentFormProps) => { const documentUrl = `data:application/pdf;base64,${document.document}`; const [step, setStep] = useState(0); const { control, // handleSubmit, watch, formState: { errors, isSubmitting, isValid }, } = useForm({ mode: 'onBlur', defaultValues: { signers: [ { name: '', email: '', }, ], }, resolver: zodResolver(ZEditDocumentFormSchema), }); const canGoBack = step > 0; const canGoNext = isValid && step < MAX_STEP; const onGoBackClick = () => setStep((prev) => Math.max(0, prev - 1)); const onGoNextClick = () => setStep((prev) => Math.min(MAX_STEP, prev + 1)); return (
{step === 0 && ( )} {step === 1 && ( )}

Add Signers ({step + 1}/{MAX_STEP + 1})

); };