Room Member Details block section code improvement

This commit is contained in:
Mauro Romito 2023-03-28 17:17:58 +02:00 committed by Mauro
parent 660dacaca9
commit b2f3f289d7

View File

@ -74,29 +74,30 @@ struct RoomMemberDetailsScreen: View {
private var blockUserSection: some View {
Section {
if context.viewState.isIgnored {
Button {
context.send(viewAction: .showUnignoreAlert)
context.send(viewAction: blockUserButtonAction)
} label: {
Label(L10n.screenRoomMemberDetailsUnblockUser, systemImage: "slash.circle")
Label(blockUserButtonTitle, systemImage: "slash.circle")
}
.accessibilityIdentifier(A11yIdentifiers.roomMemberDetailsScreen.unignore)
.accessibilityIdentifier(blockUserButtonAccessibilityIdentifier)
.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)
}
}
.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
private func blockUserAlertActions(_ item: IgnoreUserAlertItem) -> some View {
Button(item.cancelTitle, role: .cancel) { }