roomAvatarProvider top-level property

dynamic roomAvatarProvider
final

Caching the MemoryImage of each room

Implementation

final roomAvatarProvider =
    FutureProvider.family<MemoryImage?, String>((ref, roomId) async {
  final sdk = await ref.watch(sdkProvider.future);
  final thumbsize = sdk.api.newThumbSize(48, 48);
  final room = await ref.watch(maybeRoomProvider(roomId).future);
  if (room == null || !room.hasAvatar()) {
    return null;
  }

  final avatar = (await room.avatar(thumbsize)).data();
  if (avatar != null) {
    return MemoryImage(Uint8List.fromList(avatar.asTypedList()));
  }
  return null;
});