fix: unable to check on the checkbox field (#1593)

This change prevents race conditions between state updates and API
operations by updating local state immediately before making async
calls.
This commit is contained in:
Ephraim Duncan
2025-02-01 03:34:42 +00:00
committed by David Nguyen
parent c0ae68c28b
commit 06076c1809

View File

@ -181,29 +181,26 @@ export const DocumentSigningCheckboxField = ({
...checkedValues,
item.value.length > 0 ? item.value : `empty-value-${item.id}`,
];
await removeSignedFieldWithToken({
token: recipient.token,
fieldId: field.id,
});
if (isLengthConditionMet) {
await signFieldWithToken({
token: recipient.token,
fieldId: field.id,
value: toCheckboxValue(checkedValues),
isBase64: true,
});
}
} else {
updatedValues = checkedValues.filter(
(v) => v !== item.value && v !== `empty-value-${item.id}`,
);
}
setCheckedValues(updatedValues);
await removeSignedFieldWithToken({
token: recipient.token,
fieldId: field.id,
});
if (updatedValues.length > 0) {
await signFieldWithToken({
token: recipient.token,
fieldId: field.id,
value: toCheckboxValue(updatedValues),
isBase64: true,
});
}
} catch (err) {
console.error(err);
@ -214,7 +211,6 @@ export const DocumentSigningCheckboxField = ({
variant: 'destructive',
});
} finally {
setCheckedValues(updatedValues);
await revalidate();
}
};