resolveImage method

Widget resolveImage({
  1. XFile? pickedFile,
  2. String? imageSource,
  3. double? scale,
  4. BoxFit? fit,
  5. double? width,
  6. double? height,
  7. Widget? placeholder,
  8. Widget? errorWidget,
})

Resolves and returns an appropriate image widget from:

  • Picked File (XFile)
  • Network Image
  • Asset Image Falls back to error widget if all fail.

Implementation

Widget resolveImage({
  XFile? pickedFile,
  String? imageSource,
  double? scale,
  BoxFit? fit,
  double? width,
  double? height,
  Widget? placeholder,
  Widget? errorWidget,
}) {
  try {
    if (_isPickedFileValid(pickedFile)) {
      return _buildFromPickedFile(
        file: pickedFile!,
        fit: fit,
        scale: scale,
        width: width,
        height: height,
        errorWidget: errorWidget,
      );
    } else if (_isNetworkUrl(imageSource)) {
      return _buildFromNetwork(
        url: imageSource!,
        fit: fit,
        width: width,
        height: height,
        placeholder: placeholder,
        errorWidget: errorWidget,
      );
    } else if (_isAssetPath(imageSource)) {
      return _buildFromAsset(
        path: imageSource!,
        fit: fit,
        scale: scale,
        width: width,
        height: height,
        errorWidget: errorWidget,
      );
    }

    return errorWidget ?? _defaultError();
  } catch (e) {
    debugPrint('AppImageResolver | Error: $e');
    return errorWidget ?? _defaultError();
  }
}