Refactored alert info to not use the soon to be deprecated API (#1084)

* refactored alert info to not use the soon to be deprecated API

* missing files and changelog

* updated some tests

* Update ElementX/Sources/Screens/RoomMemberDetailsScreen/View/RoomMemberDetailsScreen.swift

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>

---------

Co-authored-by: Doug <6060466+pixlwave@users.noreply.github.com>
This commit is contained in:
Mauro
2023-06-14 16:24:10 +02:00
committed by GitHub
parent 8b5c105dfe
commit 2cfc844545
24 changed files with 107 additions and 171 deletions
@@ -26,7 +26,7 @@ struct RoomMemberDetailsScreenViewState: BindableState {
}
struct RoomMemberDetailsScreenViewStateBindings {
struct IgnoreUserAlertItem: AlertItem, Equatable {
struct IgnoreUserAlertItem: AlertProtocol, Equatable {
enum Action {
case ignore
case unignore
@@ -65,7 +65,7 @@ struct RoomMemberDetailsScreenViewStateBindings {
}
var ignoreUserAlert: IgnoreUserAlertItem?
var errorAlert: ErrorAlertItem?
var alertInfo: AlertInfo<RoomMemberDetailsScreenError>?
}
enum RoomMemberDetailsScreenViewAction {
@@ -74,3 +74,8 @@ enum RoomMemberDetailsScreenViewAction {
case ignoreConfirmed
case unignoreConfirmed
}
enum RoomMemberDetailsScreenError: Hashable {
case alert(String)
case unknown
}
@@ -55,8 +55,8 @@ class RoomMemberDetailsScreenViewModel: RoomMemberDetailsScreenViewModelType, Ro
switch result {
case .success:
state.details.isIgnored = true
case .failure(let error):
state.bindings.errorAlert = .init(error: error)
case .failure:
state.bindings.alertInfo = .init(id: .unknown)
}
}
@@ -68,8 +68,8 @@ class RoomMemberDetailsScreenViewModel: RoomMemberDetailsScreenViewModelType, Ro
switch result {
case .success:
state.details.isIgnored = false
case .failure(let error):
state.bindings.errorAlert = .init(error: error)
case .failure:
state.bindings.alertInfo = .init(id: .unknown)
}
}
}
@@ -29,7 +29,7 @@ struct RoomMemberDetailsScreen: View {
}
.elementFormStyle()
.alert(item: $context.ignoreUserAlert, actions: blockUserAlertActions, message: blockUserAlertMessage)
.errorAlert(item: $context.errorAlert)
.alert(item: $context.alertInfo)
}
// MARK: - Private