mirror of
https://github.com/documenso/documenso.git
synced 2025-11-20 11:41:44 +10:00
chore: make duplicate recipients work for remplates
This commit is contained in:
@ -204,6 +204,7 @@ export const AddTemplateFieldsFormPartial = ({
|
||||
event.preventDefault();
|
||||
|
||||
const copiedField = structuredClone(fieldClipboard);
|
||||
const signerIndex = recipients.findIndex((r) => r.id === selectedSigner?.id);
|
||||
|
||||
append({
|
||||
...copiedField,
|
||||
@ -212,12 +213,20 @@ export const AddTemplateFieldsFormPartial = ({
|
||||
signerId: selectedSigner?.id ?? copiedField.signerId,
|
||||
recipientId: selectedSigner?.id || copiedField.recipientId || copiedField.signerId || 0,
|
||||
signerToken: selectedSigner?.token ?? copiedField.signerToken,
|
||||
signerIndex: signerIndex >= 0 ? signerIndex : 0,
|
||||
pageX: copiedField.pageX + 3,
|
||||
pageY: copiedField.pageY + 3,
|
||||
});
|
||||
}
|
||||
},
|
||||
[append, fieldClipboard, selectedSigner?.email, selectedSigner?.id, selectedSigner?.token],
|
||||
[
|
||||
append,
|
||||
fieldClipboard,
|
||||
selectedSigner?.email,
|
||||
selectedSigner?.id,
|
||||
selectedSigner?.token,
|
||||
recipients,
|
||||
],
|
||||
);
|
||||
|
||||
useHotkeys(['ctrl+c', 'meta+c'], (evt) => onFieldCopy(evt));
|
||||
@ -323,6 +332,8 @@ export const AddTemplateFieldsFormPartial = ({
|
||||
pageX -= fieldPageWidth / 2;
|
||||
pageY -= fieldPageHeight / 2;
|
||||
|
||||
const signerIndex = recipients.findIndex((r) => r.id === selectedSigner.id);
|
||||
|
||||
append({
|
||||
formId: nanoid(12),
|
||||
type: selectedField,
|
||||
@ -336,13 +347,14 @@ export const AddTemplateFieldsFormPartial = ({
|
||||
recipientId:
|
||||
selectedSigner.id || lastActiveField?.recipientId || lastActiveField?.signerId || 0,
|
||||
signerToken: selectedSigner.token ?? '',
|
||||
signerIndex: signerIndex >= 0 ? signerIndex : 0,
|
||||
fieldMeta: undefined,
|
||||
});
|
||||
|
||||
setIsFieldWithinBounds(false);
|
||||
setSelectedField(null);
|
||||
},
|
||||
[append, isWithinPageBounds, selectedField, selectedSigner, getPage],
|
||||
[append, isWithinPageBounds, selectedField, selectedSigner, getPage, recipients],
|
||||
);
|
||||
|
||||
const onFieldResize = useCallback(
|
||||
@ -552,14 +564,15 @@ export const AddTemplateFieldsFormPartial = ({
|
||||
)}
|
||||
|
||||
{localFields.map((field, index) => {
|
||||
const recipientIndex = recipients.findIndex((r) => r.email === field.signerEmail);
|
||||
const recipientIndex =
|
||||
field.signerIndex ?? recipients.findIndex((r) => r.id === field.signerId);
|
||||
|
||||
return (
|
||||
<FieldItem
|
||||
key={index}
|
||||
recipientIndex={recipientIndex === -1 ? 0 : recipientIndex}
|
||||
recipientIndex={recipientIndex >= 0 ? recipientIndex : 0}
|
||||
field={field}
|
||||
disabled={selectedSigner?.email !== field.signerEmail}
|
||||
disabled={selectedSigner?.id !== field.signerId}
|
||||
minHeight={MIN_HEIGHT_PX}
|
||||
minWidth={MIN_WIDTH_PX}
|
||||
defaultHeight={DEFAULT_HEIGHT_PX}
|
||||
|
||||
Reference in New Issue
Block a user