From 6df525b670f0b6e571b22ab83fa2cc1110890da1 Mon Sep 17 00:00:00 2001 From: Adithya Krishna Date: Tue, 30 Apr 2024 12:05:42 +0530 Subject: [PATCH] feat: updated signer logic Signed-off-by: Adithya Krishna --- .../primitives/document-flow/add-signers.tsx | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/packages/ui/primitives/document-flow/add-signers.tsx b/packages/ui/primitives/document-flow/add-signers.tsx index 2b3a9592d..2203b7e6d 100644 --- a/packages/ui/primitives/document-flow/add-signers.tsx +++ b/packages/ui/primitives/document-flow/add-signers.tsx @@ -110,6 +110,8 @@ export const AddSignersFormPartial = ({ const [showAdvancedSettings, setShowAdvancedSettings] = useState(alwaysShowAdvancedSettings); const { + setValue, + getValues, formState: { errors, isSubmitting }, control, } = form; @@ -164,18 +166,29 @@ export const AddSignersFormPartial = ({ removeSigner(index); }; + const emptySignerIndex = signers.findIndex( + (signer) => + !getValues(`signers.${signers.indexOf(signer)}.name`) || + !getValues(`signers.${signers.indexOf(signer)}.email`), + ); + const onAddSelfSigner = () => { const lastSignerIndex = signers.length - 1; - if (!signers[lastSignerIndex].name || !signers[lastSignerIndex].email) { + if (!signers[lastSignerIndex].name && !signers[lastSignerIndex].email) { onRemoveSigner(lastSignerIndex); } - appendSigner({ - formId: nanoid(12), - name: user?.name ?? '', - email: user?.email ?? '', - role: RecipientRole.SIGNER, - actionAuth: undefined, - }); + if (emptySignerIndex !== -1) { + setValue(`signers.${emptySignerIndex}.name`, user?.name ?? ''); + setValue(`signers.${emptySignerIndex}.email`, user?.email ?? ''); + } else { + appendSigner({ + formId: nanoid(12), + name: user?.name ?? '', + email: user?.email ?? '', + role: RecipientRole.SIGNER, + actionAuth: undefined, + }); + } }; const onKeyDown = (event: React.KeyboardEvent) => {