dmAvatar method

dynamic dmAvatar(
  1. dynamic ref,
  2. dynamic context
)

Implementation

Widget dmAvatar(WidgetRef ref, BuildContext context) {
  final client = ref.watch(alwaysClientProvider);
  final membersLoader = ref.watch(membersIdsProvider(roomId));
  return membersLoader.when(
    data: (members) {
      int count = members.length;

      //Show member avatar
      if (count == 1) {
        return memberAvatar(members[0], ref);
      } else if (count == 2) {
        //Show opponent member avatar
        if (members[0] != client.userId().toString()) {
          return memberAvatar(members[0], ref);
        } else {
          return memberAvatar(members[1], ref);
        }
      }

      //Show multiple member avatars
      else {
        return groupAvatarDM(members, ref);
      }
    },
    skipLoadingOnReload: false,
    error: (e, s) {
      _log.severe('Failed to load room members', e, s);
      return errorAvatar(L10n.of(context).loadingMembersCountFailed(e));
    },
    loading: () => loadingAvatar(),
  );
}