@modular-forms/qwik
Version:
The modular and type-safe form library for Qwik
21 lines (20 loc) • 1.01 kB
JavaScript
import { getFieldArrayStore, getFieldStore, getFilteredNames, getOptions, } from '../utils';
export function getErrors(form, arg2, arg3) {
// Get filtered field names to get error from
const [fieldNames, fieldArrayNames] = getFilteredNames(form, arg2);
// Destructure options and set default values
const { shouldActive = true, shouldTouched = false, shouldDirty = false, } = getOptions(arg2, arg3);
// Create and return object with form errors
return [
...fieldNames.map((name) => [name, getFieldStore(form, name)]),
...fieldArrayNames.map((name) => [name, getFieldArrayStore(form, name)]),
].reduce((formErrors, [name, fieldOrFieldArray]) => {
if (fieldOrFieldArray.error &&
(!shouldActive || fieldOrFieldArray.active) &&
(!shouldTouched || fieldOrFieldArray.touched) &&
(!shouldDirty || fieldOrFieldArray.dirty)) {
formErrors[name] = fieldOrFieldArray.error;
}
return formErrors;
}, {});
}