validate method

  1. @override
FutureOr<ValidationResult?> validate(
  1. BuildContext context,
  2. T? value,
  3. FormValidationMode lifecycle
)
override

Validates the given value and returns a validation result.

This method performs the actual validation logic and should return null if the value is valid, or a ValidationResult describing the validation error if invalid.

Parameters:

  • context (BuildContext): The build context for localization access
  • value (T?): The value to validate (may be null)
  • lifecycle (FormValidationMode): The current validation trigger mode

Returns a FutureOr<ValidationResult?> that is null for valid values or contains error information for invalid values.

Implementation

@override
FutureOr<ValidationResult?> validate(
    BuildContext context, T? value, FormValidationMode lifecycle) {
  var result = predicate(value);
  if (result is Future<bool>) {
    return result.then((value) {
      if (!value) {
        return InvalidResult(message, state: lifecycle);
      }
      return null;
    });
  } else if (!result) {
    return InvalidResult(message, state: lifecycle);
  }

  return null;
}