mangayomi-mirror/lib/utils/cached_network.dart
kodjomoustapha 6ed57e2e44 rm
2024-05-27 09:26:30 +01:00

32 lines
1 KiB
Dart

import 'package:extended_image/extended_image.dart';
import 'package:flutter/material.dart';
import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart';
Widget cachedNetworkImage(
{Map<String, String>? headers,
required String imageUrl,
required double? width,
required double? height,
required BoxFit? fit,
AlignmentGeometry? alignment,
bool useCustomNetworkImage = true,
Widget errorWidget = const Icon(Icons.error, size: 50)}) {
return ExtendedImage(
image: useCustomNetworkImage
? CustomExtendedNetworkImageProvider(imageUrl, headers: headers)
: ExtendedNetworkImageProvider(imageUrl, headers: headers),
width: width,
height: height,
fit: fit,
filterQuality: FilterQuality.medium,
enableMemoryCache: true,
mode: ExtendedImageMode.gesture,
handleLoadingProgress: true,
loadStateChanged: (state) {
if (state.extendedImageLoadState == LoadState.failed) {
return errorWidget;
}
return null;
},
);
}