@modular-forms/solid
Version:
The modular and type-safe form library for SolidJS
24 lines (23 loc) • 921 B
JavaScript
import { untrack } from 'solid-js';
import { validate } from '../methods';
/**
* Validates a field or field array only if required.
*
* @param form The form of the field or field array.
* @param fieldOrFieldArray The store of the field or field array.
* @param name The name of the field or field array.
* @param options The validate options.
*/
export function validateIfRequired(form, fieldOrFieldArray, name, { on: modes, shouldFocus = false }) {
untrack(() => {
const validateOn = fieldOrFieldArray.validateOn ?? form.internal.validateOn;
const revalidateOn = fieldOrFieldArray.revalidateOn ?? form.internal.revalidateOn;
if (modes.includes((validateOn === 'submit'
? form.internal.submitted.get()
: fieldOrFieldArray.error.get())
? revalidateOn
: validateOn)) {
validate(form, name, { shouldFocus });
}
});
}