From efa1820aabfc69335c958b7d7d95308aee913f0a Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 22 Sep 2025 14:15:29 -0400 Subject: [PATCH] chore: show user menu on click avatar in topic participant list (#4086) --- .../topic_participant_list.dart | 58 +++++++++++-------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/lib/pangea/course_settings/topic_participant_list.dart b/lib/pangea/course_settings/topic_participant_list.dart index 389e58317..9ba87f871 100644 --- a/lib/pangea/course_settings/topic_participant_list.dart +++ b/lib/pangea/course_settings/topic_participant_list.dart @@ -8,6 +8,7 @@ import 'package:matrix/matrix.dart'; import 'package:fluffychat/l10n/l10n.dart'; import 'package:fluffychat/pangea/spaces/utils/load_participants_util.dart'; import 'package:fluffychat/widgets/avatar.dart'; +import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart'; class TopicParticipantList extends StatelessWidget { final Room room; @@ -64,33 +65,42 @@ class TopicParticipantList extends StatelessWidget { level != null ? index.leaderboardGradient : null; return Positioned( left: index * (avatarSize - overlap), - child: Stack( - alignment: Alignment.center, - children: [ - if (gradient != null) - CircleAvatar( - radius: avatarSize / 2, - child: Container( - decoration: BoxDecoration( - shape: BoxShape.circle, - gradient: gradient, + child: MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () => showMemberActionsPopupMenu( + context: context, + user: user, + ), + child: Stack( + alignment: Alignment.center, + children: [ + if (gradient != null) + CircleAvatar( + radius: avatarSize / 2, + child: Container( + decoration: BoxDecoration( + shape: BoxShape.circle, + gradient: gradient, + ), + ), + ) + else + SizedBox( + height: avatarSize, + width: avatarSize, + ), + Center( + child: Avatar( + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + size: avatarSize - 6.0, + userId: user.id, ), ), - ) - else - SizedBox( - height: avatarSize, - width: avatarSize, - ), - Center( - child: Avatar( - mxContent: user.avatarUrl, - name: user.calcDisplayname(), - size: avatarSize - 6.0, - userId: user.id, - ), + ], ), - ], + ), ), ); }).toList(),