memberAvatarProvider top-level property

dynamic memberAvatarProvider
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;
  }
});