@modular-forms/react
Version:
The modular and type-safe form library for React
34 lines (33 loc) • 1.11 kB
JavaScript
import { getFieldArrayStore } from './getFieldArrayStore';
import { getFieldStore } from './getFieldStore';
/**
* Sets an error response if a form error was not set at any field or field
* array.
*
* @param form The form of the errors.
* @param formErrors The form errors.
* @param options The error options.
*/
export function setErrorResponse(form, formErrors, { shouldActive = true }) {
// Combine errors that were not set for any field or field array into one
// general form error response message
const message = Object.entries(formErrors)
.reduce((errors, [name, error]) => {
if ([
getFieldStore(form, name),
getFieldArrayStore(form, name),
].every((fieldOrFieldArray) => !fieldOrFieldArray ||
(shouldActive && !fieldOrFieldArray.active.peek()))) {
errors.push(error);
}
return errors;
}, [])
.join(' ');
// If there is a error message, set it as form response
if (message) {
form.response.value = {
status: 'error',
message,
};
}
}