appImageProvider function

ImageProvider<Object>? appImageProvider({
  1. String? imageSource,
  2. XFile? pickedFile,
  3. double? scale,
})

Implementation

ImageProvider<Object>? appImageProvider({
  String? imageSource,
  XFile? pickedFile,
  double? scale,
}) {
  try {
    debugPrint(
      'appImageProvider | imageSource: $imageSource | pickedFile: $pickedFile | scale: $scale',
    );

    // Web: Use MemoryImage with bytes
    if (kIsWeb && pickedFile != null) {
      return NetworkImage(pickedFile.path);
    }
    // Mobile/Desktop: Use FileImage
    else if (!kIsWeb && pickedFile != null) {
      return FileImage(File(pickedFile.path), scale: scale ?? 1.0);
    }
    // Network Image
    else if (imageSource != null &&
        Uri.tryParse(imageSource)?.isAbsolute == true) {
      return CachedNetworkImageProvider(imageSource, scale: scale ?? 1.0);
    }
    // Asset Image
    else if (imageSource != null && imageSource.isAssetPath) {
      return AssetImage(imageSource);
    }

    // Fallback
    return null;
  } catch (e) {
    debugPrint('appImageProvider | Exception: $e');
    return null;
  }
}