Fix a bug where the security banner has the wrong state when out of sync. (#3511)

This commit is contained in:
Doug
2024-11-18 11:38:20 +00:00
committed by GitHub
parent c91a9bd9c9
commit bef1eda533
5 changed files with 168 additions and 31 deletions
@@ -55,16 +55,15 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
.sink { [weak self] securityState in
guard let self else { return }
switch (securityState.verificationState, securityState.recoveryState) {
case (.verified, .disabled):
switch securityState.recoveryState {
case .disabled:
state.requiresExtraAccountSetup = true
state.securityBannerMode = .show
case (.verified, .incomplete):
state.requiresExtraAccountSetup = true
if state.securityBannerMode != .dismissed {
state.securityBannerMode = .show
if !state.securityBannerMode.isDismissed {
state.securityBannerMode = .show(.setUpRecovery)
}
case .incomplete:
state.requiresExtraAccountSetup = true
state.securityBannerMode = .show(.recoveryOutOfSync)
default:
state.securityBannerMode = .none
state.requiresExtraAccountSetup = false