@modular-forms/react
Version:
The modular and type-safe form library for React
21 lines (20 loc) • 814 B
JavaScript
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 }) {
const validateOn = fieldOrFieldArray.validateOn ?? form.internal.validateOn;
const revalidateOn = fieldOrFieldArray.revalidateOn ?? form.internal.revalidateOn;
if (modes.includes((validateOn === 'submit'
? form.submitted.peek()
: fieldOrFieldArray.error.peek())
? revalidateOn
: validateOn)) {
validate(form, name, { shouldFocus });
}
}