rangeItems<T extends Iterable<Object?>> function

String? Function(T) rangeItems<T extends Iterable<Object?>>(
  1. int minN,
  2. int maxN, [
  3. String? message
])

Creates a validator that fails when an Iterable collection item count is outside [minN, maxN].

Returns message (or 'Must have between $minN and $maxN items.' by default).

final attachments = BloomTypedFormField<List<String>>(
  initialValue: [],
  validators: [rangeItems(1, 3, 'Select between 1 and 3 items.')],
);

Implementation

String? Function(T) rangeItems<T extends Iterable<Object?>>(int minN, int maxN,
        [String? message]) =>
    (v) => (v.length < minN || v.length > maxN)
        ? (message ?? 'Must have between $minN and $maxN items.')
        : null;