mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 00:03:33 +10:00
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:
committed by
David Nguyen
parent
c0ae68c28b
commit
06076c1809
@ -181,29 +181,26 @@ export const DocumentSigningCheckboxField = ({
|
|||||||
...checkedValues,
|
...checkedValues,
|
||||||
item.value.length > 0 ? item.value : `empty-value-${item.id}`,
|
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 {
|
} else {
|
||||||
updatedValues = checkedValues.filter(
|
updatedValues = checkedValues.filter(
|
||||||
(v) => v !== item.value && v !== `empty-value-${item.id}`,
|
(v) => v !== item.value && v !== `empty-value-${item.id}`,
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
setCheckedValues(updatedValues);
|
||||||
|
|
||||||
await removeSignedFieldWithToken({
|
await removeSignedFieldWithToken({
|
||||||
token: recipient.token,
|
token: recipient.token,
|
||||||
fieldId: field.id,
|
fieldId: field.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (updatedValues.length > 0) {
|
||||||
|
await signFieldWithToken({
|
||||||
|
token: recipient.token,
|
||||||
|
fieldId: field.id,
|
||||||
|
value: toCheckboxValue(updatedValues),
|
||||||
|
isBase64: true,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
@ -214,7 +211,6 @@ export const DocumentSigningCheckboxField = ({
|
|||||||
variant: 'destructive',
|
variant: 'destructive',
|
||||||
});
|
});
|
||||||
} finally {
|
} finally {
|
||||||
setCheckedValues(updatedValues);
|
|
||||||
await revalidate();
|
await revalidate();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user