From 3b3e1bfe4e906f928329e33aad5dc8a468619091 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Fri, 12 Sep 2025 12:20:34 -0400 Subject: [PATCH] fix: show bot avatar in open roles indicator (#3966) --- lib/pages/chat_list/chat_list.dart | 1 - .../chat_list/utils/get_chat_list_item_subtitle.dart | 1 + lib/pangea/course_chats/open_roles_indicator.dart | 12 ++++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 1e9dd6adc..ad528285a 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -43,7 +43,6 @@ import '../../widgets/matrix.dart'; import 'package:fluffychat/utils/tor_stub.dart' if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - enum PopupMenuAction { settings, invite, diff --git a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart index e610fc91e..8da171ff4 100644 --- a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart @@ -70,6 +70,7 @@ class ChatListItemSubtitle extends StatelessWidget { userIds: room.activityRoles?.roles.values.map((r) => r.userId).toList() ?? [], + room: room, space: room.courseParent, ); } else if (room.activityIsFinished) { diff --git a/lib/pangea/course_chats/open_roles_indicator.dart b/lib/pangea/course_chats/open_roles_indicator.dart index e7cf25e9a..4ba2eed46 100644 --- a/lib/pangea/course_chats/open_roles_indicator.dart +++ b/lib/pangea/course_chats/open_roles_indicator.dart @@ -10,12 +10,14 @@ import 'package:fluffychat/widgets/avatar.dart'; class OpenRolesIndicator extends StatelessWidget { final int totalSlots; final List userIds; + final Room? room; final Room? space; const OpenRolesIndicator({ super.key, required this.totalSlots, required this.userIds, + this.room, this.space, }); @@ -26,19 +28,21 @@ class OpenRolesIndicator extends StatelessWidget { totalSlots - userIds.length, ); + final roomParticipants = room?.getParticipants() ?? []; final spaceParticipants = space?.getParticipants() ?? []; return Row( spacing: 2.0, children: [ ...userIds.map((u) { - final user = spaceParticipants.firstWhereOrNull( - (p) => p.id == u, - ); + final user = roomParticipants.firstWhereOrNull((p) => p.id == u) ?? + spaceParticipants.firstWhereOrNull((p) => p.id == u); + return Avatar( mxContent: user?.avatarUrl, - userId: user?.calcDisplayname() ?? u.localpart ?? u, + name: user?.calcDisplayname() ?? u.localpart ?? u, size: 16, + userId: u, ); }), ...List.generate(remainingSlots, (_) {