From 2896673a2396725368afac57e3f90498f0030baa Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:58:16 +0200 Subject: [PATCH] chore: allow duplicate recipient in templates --- packages/lib/server-only/field/set-fields-for-template.ts | 8 +++----- .../template/create-document-from-template-legacy.ts | 6 ++---- .../ui/primitives/template-flow/add-template-fields.tsx | 6 ++++++ .../primitives/template-flow/add-template-fields.types.ts | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/lib/server-only/field/set-fields-for-template.ts b/packages/lib/server-only/field/set-fields-for-template.ts index 9669fbe82..a2097bfae 100644 --- a/packages/lib/server-only/field/set-fields-for-template.ts +++ b/packages/lib/server-only/field/set-fields-for-template.ts @@ -22,8 +22,8 @@ export type SetFieldsForTemplateOptions = { fields: { id?: number | null; type: FieldType; - signerEmail: string; recipientId: number; + signerEmail: string; pageNumber: number; pageX: number; pageY: number; @@ -181,10 +181,8 @@ export const setFieldsForTemplate = async ({ }, recipient: { connect: { - templateId_email: { - templateId, - email: field.signerEmail.toLowerCase(), - }, + templateId, + id: field.recipientId, }, }, }, diff --git a/packages/lib/server-only/template/create-document-from-template-legacy.ts b/packages/lib/server-only/template/create-document-from-template-legacy.ts index bf79f080e..eab53d1c2 100644 --- a/packages/lib/server-only/template/create-document-from-template-legacy.ts +++ b/packages/lib/server-only/template/create-document-from-template-legacy.ts @@ -141,10 +141,8 @@ export const createDocumentFromTemplateLegacy = async ({ return await prisma.recipient.upsert({ where: { - documentId_email: { - documentId: document.id, - email: existingRecipient?.email ?? recipient.email, - }, + documentId: document.id, + id: existingRecipient?.id, }, update: { name: recipient.name, diff --git a/packages/ui/primitives/template-flow/add-template-fields.tsx b/packages/ui/primitives/template-flow/add-template-fields.tsx index 13d96b56a..a01570eaf 100644 --- a/packages/ui/primitives/template-flow/add-template-fields.tsx +++ b/packages/ui/primitives/template-flow/add-template-fields.tsx @@ -122,6 +122,7 @@ export const AddTemplateFieldsFormPartial = ({ pageY: Number(field.positionY), pageWidth: Number(field.width), pageHeight: Number(field.height), + recipientId: field.recipientId ?? -1, signerId: field.recipientId ?? -1, signerEmail: recipients.find((recipient) => recipient.id === field.recipientId)?.email ?? '', @@ -177,6 +178,8 @@ export const AddTemplateFieldsFormPartial = ({ formId: nanoid(12), signerEmail: selectedSigner?.email ?? lastActiveField.signerEmail, signerId: selectedSigner?.id ?? lastActiveField.signerId, + recipientId: + selectedSigner?.id || lastActiveField.recipientId || lastActiveField.signerId || 0, signerToken: selectedSigner?.token ?? lastActiveField.signerToken, pageX: lastActiveField.pageX + 3, pageY: lastActiveField.pageY + 3, @@ -207,6 +210,7 @@ export const AddTemplateFieldsFormPartial = ({ formId: nanoid(12), signerEmail: selectedSigner?.email ?? copiedField.signerEmail, signerId: selectedSigner?.id ?? copiedField.signerId, + recipientId: selectedSigner?.id || copiedField.recipientId || copiedField.signerId || 0, signerToken: selectedSigner?.token ?? copiedField.signerToken, pageX: copiedField.pageX + 3, pageY: copiedField.pageY + 3, @@ -329,6 +333,8 @@ export const AddTemplateFieldsFormPartial = ({ pageHeight: fieldPageHeight, signerEmail: selectedSigner.email, signerId: selectedSigner.id, + recipientId: + selectedSigner.id || lastActiveField?.recipientId || lastActiveField?.signerId || 0, signerToken: selectedSigner.token ?? '', fieldMeta: undefined, }); diff --git a/packages/ui/primitives/template-flow/add-template-fields.types.ts b/packages/ui/primitives/template-flow/add-template-fields.types.ts index bc5b31afd..7898fe731 100644 --- a/packages/ui/primitives/template-flow/add-template-fields.types.ts +++ b/packages/ui/primitives/template-flow/add-template-fields.types.ts @@ -12,6 +12,7 @@ export const ZAddTemplateFieldsFormSchema = z.object({ signerEmail: z.string().min(1), signerToken: z.string(), signerId: z.number().optional(), + recipientId: z.number(), pageNumber: z.number().min(1), pageX: z.number().min(0), pageY: z.number().min(0),