defaultImageResolver function

ImageProvider<Object>? defaultImageResolver(
  1. String src
)

Resolves http(s): URLs, data: URIs and asset paths, and nothing else.

Everything else returns null and draws the placeholder — a file: URL in a document from someone else has no business reading the local disk.

Implementation

ImageProvider<Object>? defaultImageResolver(String src) {
  final trimmed = src.trim();
  if (trimmed.isEmpty) return null;
  final uri = Uri.tryParse(trimmed);
  if (uri == null) return null;
  if (!uri.hasScheme) return AssetImage(trimmed);
  return switch (uri.scheme.toLowerCase()) {
    'http' || 'https' => NetworkImage(trimmed),
    'data' when uri.data != null => _DataUriImage(
      trimmed,
      uri.data!.contentAsBytes(),
    ),
    'asset' => AssetImage(uri.path),
    _ => null,
  };
}