passes method

  1. @override
FutureOr<bool> passes(
  1. ValidationContext context
)
override

Validates the value using the given context.

Returns true if valid, otherwise false.

Implementation

@override
FutureOr<bool> passes(ValidationContext context) async {
  final value = context.value;
  if (value == null) return false;

  if (!await FileRule().passes(context)) return false;

  final allowedMimes = [
    'image/jpeg',
    'image/png',
    'image/gif',
    'image/bmp',
    'image/webp',
    'image/svg+xml',
  ];

  if (value is UploadedFile) {
    return _isImage(value, allowedMimes);
  }

  if (value is List<UploadedFile>) {
    for (final file in value) {
      if (!await _isImage(file, allowedMimes)) return false;
    }
  }
  return true;
}