injectImages<D extends Data> function
D
injectImages<D extends Data>( - D data, {
- bool preloadFull = false,
})
Implementation
D injectImages<D extends Data>(D data, {bool preloadFull = false}) {
Future<ImageData?> getImgDataFromHash(String? hash) {
if (hash == null) return Future.value(null);
return API().getImageByHash(hash, owner: data).catchError((e, st) {
debugPrint('getImageByHash failed ($hash): $e');
return null;
});
}
if (data.mainhash != null &&
data.mainhash != Options().no_image_placeholder_name) {
var mainImage = getImgDataFromHash(data.mainhash);
data.imageFutures =
data.imagehashes?.map((hash) => getImgDataFromHash(hash)).toList();
data.mainImage = mainImage;
data.previewImage = mainImage;
} else {
//no main image set
if (data.imagehashes == null ||
data.imagehashes!.length == 0) //the second check *could* be omitted
return data;
data.previewImage = Future.value(null);
if (data.imagehashes != null && data.imagehashes!.length > 0) {
data.imageFutures =
data.imagehashes?.map((hash) => getImgDataFromHash(hash)).toList();
data.previewImage = data.imageFutures!.first;
}
}
return data;
}