getImageOrIcon function

dynamic getImageOrIcon({
  1. required String photoPath,
  2. double width = Dimensions.IMAGE_PROFIL_WIDTH,
})

Implementation

getImageOrIcon({required String photoPath, double width = Dimensions.IMAGE_PROFIL_WIDTH}) {
  if (photoPath.isNotEmpty) {
    bool isUr = isUrl(photoPath);
    if (isUr) {
      return CachedNetworkImage(
        imageUrl: photoPath,
        imageBuilder: (context, imageProvider) => Container(
          width: width,
          height: width,
          decoration: BoxDecoration(
            shape: BoxShape.circle,
            image: DecorationImage(image: imageProvider, fit: BoxFit.cover),
          ),
        ),
        placeholder: (context, url) => ShimmerWidget(
          width: width,
          height: width,
          circular: true,
        ),
        errorWidget: (context, url, error) => const Icon(Icons.error),
      );
    }
    bool isB64 = isBase64(photoPath);
    if (isB64) {
      return Image.memory(base64Decode(photoPath),
          width: width, fit: BoxFit.cover);
    }
  }

  return Material(
    elevation: 1,
    shape: const CircleBorder(),
    child: Icon(Icons.account_circle, size: width),
  );
}