From 7b1333c9b807eaf8e00ec1af378621ccb0d9dee7 Mon Sep 17 00:00:00 2001 From: Doug Date: Fri, 10 Jul 2026 13:16:15 +0100 Subject: [PATCH] Show user statuses in the room members list. --- .../RoomMembersListScreenMemberCell.swift | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift index 0dbf02037..894e1e756 100644 --- a/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift +++ b/ElementX/Sources/Screens/RoomMemberListScreen/View/RoomMembersListScreenMemberCell.swift @@ -28,10 +28,16 @@ struct RoomMembersListScreenMemberCell: View { HStack(alignment: .center, spacing: 4) { VStack(alignment: .leading, spacing: 2) { - Text(title) - .font(.compound.bodyLG) - .foregroundColor(.compound.textPrimary) - .lineLimit(1) + HStack(spacing: 8) { + Text(title) + .lineLimit(1) + + if let statusEmoji { + Text(String(statusEmoji)) + } + } + .font(.compound.bodyLG) + .foregroundColor(.compound.textPrimary) if let subtitle { Text(subtitle) @@ -84,6 +90,10 @@ struct RoomMembersListScreenMemberCell: View { return listEntry.member.name ?? listEntry.member.id } + var statusEmoji: Character? { + listEntry.member.isBanned ? nil : listEntry.member.status.displayed?.emoji + } + var subtitle: String? { listEntry.member.isBanned ? nil : listEntry.member.id } @@ -101,6 +111,8 @@ struct RoomMembersListMemberCell_Previews: PreviewProvider, TestablePreview { static let members: [RoomMemberListScreenEntry] = [ .init(member: .init(withProxy: RoomMemberProxyMock.mockAlice), verificationState: .notVerified), + .init(member: .init(withProxy: RoomMemberProxyMock.mockErin), + verificationState: .notVerified), .init(member: .init(withProxy: RoomMemberProxyMock.mockAdmin), verificationState: .verified), .init(member: .init(withProxy: RoomMemberProxyMock.mockModerator),