injectImages<D extends WithImgHashes> function
D
injectImages<D extends WithImgHashes>( - D data, {
- bool preloadFull = false,
})
Implementation
D injectImages<D extends WithImgHashes>(D data, {bool preloadFull = false}) {
Future<ImageData?> getImgDataFromHash(String? hash) {
if (preloadFull) API().getImageByHash(hash!, compressed: false);
return API().getImageByHash(hash!, compressed: true).then((value) => value
?..fullImageGetter = () => API()
.getImageByHash(hash, compressed: false)
.then((value) => value?.thumbnail));
}
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;
}