memberAvatarProvider top-level property
final
Caching the MemoryImage of each room
Implementation
final memberAvatarProvider = FutureProvider.autoDispose
.family<MemoryImage?, MemberInfo>((ref, query) async {
final sdk = await ref.watch(sdkProvider.future);
final thumbsize = sdk.api.newThumbSize(48, 48);
try {
final profile = await ref.watch(_memberProfileProvider(query).future);
// use .data() consumes the value so we keep it stored, any further call to .data()
// comes back empty as the data was consumed.
final avatar = await profile.getAvatar(thumbsize);
return avatar
.data()
.map((data) => MemoryImage(Uint8List.fromList(data.asTypedList())));
} on RoomNotFound {
return null;
}
});