validateItem method

Future<FormXField<V>> validateItem({
  1. bool softValidation = false,
})

Validates the field.

It will iterate through all validators in order and return a new FormXField

Implementation

Future<FormXField<V>> validateItem({
  bool softValidation = false,
}) {
  return Future.wait(
    validators.map((validator) {
      return validator.validate(value);
    }),
  ).then((validationResults) {
    final validation = validationResults.firstWhere(
      (element) => element.isValid == false,
      orElse: () => ValidatorResult.success(),
    );
    final errorMessage = softValidation ? null : validation.errorMessage;
    return _applyValidationResult(errorMessage, validation.isValid);
  }).catchError((e, stackTrace) {
    onValidationError?.call();
    return _applyValidationResult(null, true);
  });
}