diff --git a/.changeset/famous-pianos-happen.md b/.changeset/famous-pianos-happen.md new file mode 100644 index 0000000000..5253083ba9 --- /dev/null +++ b/.changeset/famous-pianos-happen.md @@ -0,0 +1,5 @@ +--- +"@comet/admin": patch +--- + +Fix display of warnings for forms that use both form-level and field-level validation diff --git a/packages/admin/admin/src/FinalForm.tsx b/packages/admin/admin/src/FinalForm.tsx index 37e9690373..876cc69c4e 100644 --- a/packages/admin/admin/src/FinalForm.tsx +++ b/packages/admin/admin/src/FinalForm.tsx @@ -162,6 +162,8 @@ export function FinalForm>({}); + useEffect(() => { if (validateWarning) { const validate = async () => { @@ -177,11 +179,17 @@ export function FinalForm { - setFieldData(fieldName, { warning: undefined }); + const hasFormLevelWarning = Boolean(formLevelWarnings.current[fieldName]); + if (hasFormLevelWarning) { + setFieldData(fieldName, { warning: undefined }); + } }); + formLevelWarnings.current = {}; return; } + formLevelWarnings.current = validationWarnings; + Object.entries(validationWarnings).forEach(([fieldName, warning]) => { setFieldData(fieldName, { warning }); });