mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Update appearance of admins when changing moderators. (#2654)
This commit is contained in:
@@ -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,
|
||||
|
||||
+12
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user