mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
fix for unbanning requiring both kick and ban permissions
This commit is contained in:
+21
-22
@@ -39,9 +39,27 @@ struct ManageRoomMemberSheetView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Section {
|
Section {
|
||||||
if context.viewState.permissions.canKick {
|
if context.viewState.permissions.canKick, !context.viewState.isMemberBanned {
|
||||||
// Unbanning requires only the kick permission according to the specs.
|
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberRemove,
|
||||||
if context.viewState.isMemberBanned {
|
icon: \.close,
|
||||||
|
role: .destructive),
|
||||||
|
kind: .button {
|
||||||
|
context.send(viewAction: .kick)
|
||||||
|
})
|
||||||
|
.disabled(context.viewState.isKickDisabled)
|
||||||
|
}
|
||||||
|
|
||||||
|
if context.viewState.permissions.canBan {
|
||||||
|
if !context.viewState.isMemberBanned {
|
||||||
|
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberBan,
|
||||||
|
icon: \.block,
|
||||||
|
role: .destructive),
|
||||||
|
kind: .button {
|
||||||
|
context.send(viewAction: .ban)
|
||||||
|
})
|
||||||
|
.disabled(context.viewState.isBanUnbanDisabled)
|
||||||
|
// Kick permission is also needed to unban
|
||||||
|
} else if context.viewState.permissions.canKick {
|
||||||
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberUnban,
|
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberUnban,
|
||||||
icon: \.restart,
|
icon: \.restart,
|
||||||
role: .destructive),
|
role: .destructive),
|
||||||
@@ -49,27 +67,8 @@ struct ManageRoomMemberSheetView: View {
|
|||||||
context.send(viewAction: .unban)
|
context.send(viewAction: .unban)
|
||||||
})
|
})
|
||||||
.disabled(context.viewState.isBanUnbanDisabled)
|
.disabled(context.viewState.isBanUnbanDisabled)
|
||||||
} else {
|
|
||||||
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberRemove,
|
|
||||||
icon: \.close,
|
|
||||||
role: .destructive),
|
|
||||||
kind: .button {
|
|
||||||
context.send(viewAction: .kick)
|
|
||||||
})
|
|
||||||
.disabled(context.viewState.isKickDisabled)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if context.viewState.permissions.canBan,
|
|
||||||
!context.viewState.isMemberBanned {
|
|
||||||
ListRow(label: .default(title: L10n.screenBottomSheetManageRoomMemberBan,
|
|
||||||
icon: \.block,
|
|
||||||
role: .destructive),
|
|
||||||
kind: .button {
|
|
||||||
context.send(viewAction: .ban)
|
|
||||||
})
|
|
||||||
.disabled(context.viewState.isBanUnbanDisabled)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.compoundList()
|
.compoundList()
|
||||||
|
|||||||
Reference in New Issue
Block a user