mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-06 04:18:31 +00:00
Room Member Details block section code improvement
This commit is contained in:
@@ -74,29 +74,30 @@ struct RoomMemberDetailsScreen: View {
|
|||||||
|
|
||||||
private var blockUserSection: some View {
|
private var blockUserSection: some View {
|
||||||
Section {
|
Section {
|
||||||
if context.viewState.isIgnored {
|
Button {
|
||||||
Button {
|
context.send(viewAction: blockUserButtonAction)
|
||||||
context.send(viewAction: .showUnignoreAlert)
|
} label: {
|
||||||
} label: {
|
Label(blockUserButtonTitle, systemImage: "slash.circle")
|
||||||
Label(L10n.screenRoomMemberDetailsUnblockUser, systemImage: "slash.circle")
|
|
||||||
}
|
|
||||||
.accessibilityIdentifier(A11yIdentifiers.roomMemberDetailsScreen.unignore)
|
|
||||||
.buttonStyle(FormButtonStyle(accessory: context.viewState.isProcessingIgnoreRequest ? .progressView : nil))
|
|
||||||
.disabled(context.viewState.isProcessingIgnoreRequest)
|
|
||||||
} else {
|
|
||||||
Button(role: .destructive) {
|
|
||||||
context.send(viewAction: .showIgnoreAlert)
|
|
||||||
} label: {
|
|
||||||
Label(L10n.screenRoomMemberDetailsBlockUser, systemImage: "slash.circle")
|
|
||||||
}
|
|
||||||
.accessibilityIdentifier(A11yIdentifiers.roomMemberDetailsScreen.ignore)
|
|
||||||
.buttonStyle(FormButtonStyle(accessory: context.viewState.isProcessingIgnoreRequest ? .progressView : nil))
|
|
||||||
.disabled(context.viewState.isProcessingIgnoreRequest)
|
|
||||||
}
|
}
|
||||||
|
.accessibilityIdentifier(blockUserButtonAccessibilityIdentifier)
|
||||||
|
.buttonStyle(FormButtonStyle(accessory: context.viewState.isProcessingIgnoreRequest ? .progressView : nil))
|
||||||
|
.disabled(context.viewState.isProcessingIgnoreRequest)
|
||||||
}
|
}
|
||||||
.formSectionStyle()
|
.formSectionStyle()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var blockUserButtonAction: RoomMemberDetailsViewAction {
|
||||||
|
context.viewState.isIgnored ? .showUnignoreAlert : .showIgnoreAlert
|
||||||
|
}
|
||||||
|
|
||||||
|
private var blockUserButtonTitle: String {
|
||||||
|
context.viewState.isIgnored ? L10n.screenRoomMemberDetailsUnblockUser : L10n.screenRoomMemberDetailsBlockUser
|
||||||
|
}
|
||||||
|
|
||||||
|
private var blockUserButtonAccessibilityIdentifier: String {
|
||||||
|
context.viewState.isIgnored ? A11yIdentifiers.roomMemberDetailsScreen.unignore : A11yIdentifiers.roomMemberDetailsScreen.ignore
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder
|
@ViewBuilder
|
||||||
private func blockUserAlertActions(_ item: IgnoreUserAlertItem) -> some View {
|
private func blockUserAlertActions(_ item: IgnoreUserAlertItem) -> some View {
|
||||||
Button(item.cancelTitle, role: .cancel) { }
|
Button(item.cancelTitle, role: .cancel) { }
|
||||||
|
|||||||
Reference in New Issue
Block a user