validate method

  1. @override
bool validate(
  1. T value,
  2. Map<String, FormFieldState> fields
)
override

Validates the given value against the validation rule.

  • value: The value to be validated.
  • fields: A map of form field states for cross-field validation.

Returns true if the validation passes, false otherwise.

Implementation

@override
bool validate(T value, Map<String, FormFieldState> fields) {
  bool _isBlank(dynamic value) {
    if (value == null) return true;
    if (value is String) return value.trim().isEmpty;
    if (value is Iterable) return value.isEmpty;
    return false;
  }

  final requiredNow = isRequired(fields);
  if (!requiredNow) {
    // Not required => always pass
    return true;
  }
  // Required => must be non-empty
  return !_isBlank(value);
}