UNPKG

@modular-forms/solid

Version:

The modular and type-safe form library for SolidJS

35 lines (34 loc) 1.16 kB
import { untrack } from 'solid-js'; 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 && !untrack(fieldOrFieldArray.active.get)))) { errors.push(error); } return errors; }, []) .join(' '); // If there is a error message, set it as form response if (message) { form.internal.response.set({ status: 'error', message, }); } }