Update appearance of admins when changing moderators. (#2654)

This commit is contained in:
Doug
2024-04-05 12:19:46 +01:00
committed by GitHub
parent 023b7fc608
commit 181753e43d
27 changed files with 59 additions and 44 deletions
@@ -58,6 +58,7 @@ struct RoomChangeRolesScreen: View {
RoomChangeRolesScreenSection(members: context.viewState.administrators,
title: L10n.screenRoomChangeRoleSectionAdministrators,
isAdministratorsSection: true,
context: context)
RoomChangeRolesScreenSection(members: context.viewState.moderators,
title: L10n.screenRoomChangeRoleSectionModerators,
@@ -20,6 +20,7 @@ import SwiftUI
struct RoomChangeRolesScreenSection: View {
let members: [RoomMemberDetails]
let title: String
var isAdministratorsSection = false
@ObservedObject var context: RoomChangeRolesScreenViewModel.Context
@@ -29,7 +30,7 @@ struct RoomChangeRolesScreenSection: View {
ForEach(members, id: \.id) { member in
RoomChangeRolesScreenRow(member: member,
imageProvider: context.imageProvider,
isSelected: context.viewState.isMemberSelected(member)) {
isSelected: isMemberSelected(member)) {
context.send(viewAction: .toggleMember(member))
}
.disabled(member.role == .administrator)
@@ -37,7 +38,17 @@ struct RoomChangeRolesScreenSection: View {
} header: {
Text(title)
.compoundListSectionHeader()
} footer: {
if isAdministratorsSection, context.viewState.mode == .moderator {
Text(L10n.screenRoomChangeRoleModeratorsAdminSectionFooter)
.compoundListSectionFooter()
}
}
}
}
private func isMemberSelected(_ member: RoomMemberDetails) -> Bool {
// We always show administrators as selected, even on the moderators screen.
member.role == .administrator || context.viewState.isMemberSelected(member)
}
}