mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Remove the requiresExtraAccountSetup badge. (#5921)
It is no longer part of the designs, we only badge the item in Settings.
This commit is contained in:
@@ -10,7 +10,6 @@ import SwiftUI
|
|||||||
|
|
||||||
struct AvatarSettingsButtonLabel: View {
|
struct AvatarSettingsButtonLabel: View {
|
||||||
let userProfile: UserProfile
|
let userProfile: UserProfile
|
||||||
var requiresExtraAccountSetup = false
|
|
||||||
let mediaProvider: MediaProviderProtocol?
|
let mediaProvider: MediaProviderProtocol?
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -20,7 +19,6 @@ struct AvatarSettingsButtonLabel: View {
|
|||||||
avatarSize: .user(on: .chats),
|
avatarSize: .user(on: .chats),
|
||||||
mediaProvider: mediaProvider)
|
mediaProvider: mediaProvider)
|
||||||
.accessibilityIdentifier(A11yIdentifiers.homeScreen.userAvatar)
|
.accessibilityIdentifier(A11yIdentifiers.homeScreen.userAvatar)
|
||||||
.overlayBadge(10, isBadged: requiresExtraAccountSetup)
|
|
||||||
.modifier(StatusEmojiModifier(statusEmoji: userProfile.status.displayed?.emoji))
|
.modifier(StatusEmojiModifier(statusEmoji: userProfile.status.displayed?.emoji))
|
||||||
.geometryGroup()
|
.geometryGroup()
|
||||||
}
|
}
|
||||||
@@ -61,23 +59,11 @@ struct AvatarSettingsButtonLabel_Previews: PreviewProvider, TestablePreview {
|
|||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
HStack(spacing: 16) {
|
HStack(spacing: 16) {
|
||||||
AvatarSettingsButtonLabel(userProfile: .mockAlice,
|
AvatarSettingsButtonLabel(userProfile: .mockAlice,
|
||||||
requiresExtraAccountSetup: false,
|
|
||||||
mediaProvider: MediaProviderMock(.init()))
|
|
||||||
|
|
||||||
AvatarSettingsButtonLabel(userProfile: .mockAlice,
|
|
||||||
requiresExtraAccountSetup: true,
|
|
||||||
mediaProvider: MediaProviderMock(.init()))
|
mediaProvider: MediaProviderMock(.init()))
|
||||||
|
|
||||||
AvatarSettingsButtonLabel(userProfile: .init(userID: "",
|
AvatarSettingsButtonLabel(userProfile: .init(userID: "",
|
||||||
avatarURL: .mockMXCUserAvatar,
|
avatarURL: .mockMXCUserAvatar,
|
||||||
status: .mock(text: "", emoji: "🌴")),
|
status: .mock(text: "", emoji: "🌴")),
|
||||||
requiresExtraAccountSetup: false,
|
|
||||||
mediaProvider: MediaProviderMock(.init()))
|
|
||||||
|
|
||||||
AvatarSettingsButtonLabel(userProfile: .init(userID: "",
|
|
||||||
avatarURL: .mockMXCUserAvatar,
|
|
||||||
status: .mock(text: "", emoji: "🌴")),
|
|
||||||
requiresExtraAccountSetup: true,
|
|
||||||
mediaProvider: MediaProviderMock(.init()))
|
mediaProvider: MediaProviderMock(.init()))
|
||||||
}
|
}
|
||||||
.padding(16)
|
.padding(16)
|
||||||
|
|||||||
@@ -95,8 +95,6 @@ struct HomeScreenViewState: BindableState {
|
|||||||
var securityBannerMode = HomeScreenSecurityBannerMode.none
|
var securityBannerMode = HomeScreenSecurityBannerMode.none
|
||||||
var shouldShowNewSoundBanner = false
|
var shouldShowNewSoundBanner = false
|
||||||
|
|
||||||
var requiresExtraAccountSetup = false
|
|
||||||
|
|
||||||
var rooms: [HomeScreenRoom] = []
|
var rooms: [HomeScreenRoom] = []
|
||||||
var roomListMode: HomeScreenRoomListMode = .skeletons
|
var roomListMode: HomeScreenRoomListMode = .skeletons
|
||||||
|
|
||||||
|
|||||||
@@ -65,16 +65,13 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
|||||||
|
|
||||||
switch securityState.recoveryState {
|
switch securityState.recoveryState {
|
||||||
case .disabled:
|
case .disabled:
|
||||||
state.requiresExtraAccountSetup = true
|
|
||||||
if !state.securityBannerMode.isDismissed {
|
if !state.securityBannerMode.isDismissed {
|
||||||
state.securityBannerMode = .show(.setUpRecovery)
|
state.securityBannerMode = .show(.setUpRecovery)
|
||||||
}
|
}
|
||||||
case .incomplete:
|
case .incomplete:
|
||||||
state.requiresExtraAccountSetup = true
|
|
||||||
state.securityBannerMode = .show(.recoveryOutOfSync)
|
state.securityBannerMode = .show(.recoveryOutOfSync)
|
||||||
default:
|
default:
|
||||||
state.securityBannerMode = .none
|
state.securityBannerMode = .none
|
||||||
state.requiresExtraAccountSetup = false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.store(in: &cancellables)
|
.store(in: &cancellables)
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ struct HomeScreen: View {
|
|||||||
context.send(viewAction: .showSettings)
|
context.send(viewAction: .showSettings)
|
||||||
} label: {
|
} label: {
|
||||||
AvatarSettingsButtonLabel(userProfile: context.viewState.userProfile,
|
AvatarSettingsButtonLabel(userProfile: context.viewState.userProfile,
|
||||||
requiresExtraAccountSetup: context.viewState.requiresExtraAccountSetup,
|
|
||||||
mediaProvider: context.mediaProvider)
|
mediaProvider: context.mediaProvider)
|
||||||
}
|
}
|
||||||
.accessibilityLabel(L10n.commonSettings)
|
.accessibilityLabel(L10n.commonSettings)
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:918f6cb4e15876a84893fe1db1a5102540a37b272fcadc58fe8119e3aa4ca037
|
oid sha256:13d4ba218a8a95bb13e9ab23d85ba8092cff7fad4dd26d75a2c9a21d6e4204fe
|
||||||
size 21295
|
size 20207
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:918f6cb4e15876a84893fe1db1a5102540a37b272fcadc58fe8119e3aa4ca037
|
oid sha256:13d4ba218a8a95bb13e9ab23d85ba8092cff7fad4dd26d75a2c9a21d6e4204fe
|
||||||
size 21295
|
size 20207
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4d355015973683e5a0260679f724c979ef2f070245bec6fd302c3c46b58591ff
|
oid sha256:4447de0f020576d2f892ce4b95799f9b417ac5bfd3707791a974bc27093e7023
|
||||||
size 17368
|
size 16365
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4d355015973683e5a0260679f724c979ef2f070245bec6fd302c3c46b58591ff
|
oid sha256:4447de0f020576d2f892ce4b95799f9b417ac5bfd3707791a974bc27093e7023
|
||||||
size 17368
|
size 16365
|
||||||
|
|||||||
@@ -202,20 +202,18 @@ final class HomeScreenViewModelTests {
|
|||||||
#expect(context.viewState.securityBannerMode == .none)
|
#expect(context.viewState.securityBannerMode == .none)
|
||||||
|
|
||||||
// When the recovery state comes through as disabled.
|
// When the recovery state comes through as disabled.
|
||||||
var deferred = deferFulfillment(context.$viewState) { $0.requiresExtraAccountSetup == true }
|
var deferred = deferFulfillment(context.$viewState) { $0.securityBannerMode == .show(.setUpRecovery) }
|
||||||
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .disabled))
|
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .disabled))
|
||||||
try await deferred.fulfill()
|
|
||||||
|
|
||||||
// Then the banner should be shown to set up recovery.
|
// Then the banner should be shown to set up recovery.
|
||||||
#expect(context.viewState.securityBannerMode == .show(.setUpRecovery))
|
|
||||||
|
|
||||||
// When the recovery is enabled.
|
|
||||||
deferred = deferFulfillment(context.$viewState) { $0.requiresExtraAccountSetup == false }
|
|
||||||
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .enabled))
|
|
||||||
try await deferred.fulfill()
|
try await deferred.fulfill()
|
||||||
|
|
||||||
|
// When the recovery is enabled.
|
||||||
|
deferred = deferFulfillment(context.$viewState) { $0.securityBannerMode == .none }
|
||||||
|
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .enabled))
|
||||||
|
|
||||||
// Then the banner should no longer be shown.
|
// Then the banner should no longer be shown.
|
||||||
#expect(context.viewState.securityBannerMode == .none)
|
try await deferred.fulfill()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -248,20 +246,18 @@ final class HomeScreenViewModelTests {
|
|||||||
#expect(context.viewState.securityBannerMode == .none)
|
#expect(context.viewState.securityBannerMode == .none)
|
||||||
|
|
||||||
// When the recovery state comes through as incomplete.
|
// When the recovery state comes through as incomplete.
|
||||||
var deferred = deferFulfillment(context.$viewState) { $0.requiresExtraAccountSetup == true }
|
var deferred = deferFulfillment(context.$viewState) { $0.securityBannerMode == .show(.recoveryOutOfSync) }
|
||||||
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .incomplete))
|
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .incomplete))
|
||||||
try await deferred.fulfill()
|
|
||||||
|
|
||||||
// Then the banner should be shown for out of sync recovery.
|
// Then the banner should be shown for out of sync recovery.
|
||||||
#expect(context.viewState.securityBannerMode == .show(.recoveryOutOfSync))
|
|
||||||
|
|
||||||
// When the recovery is enabled.
|
|
||||||
deferred = deferFulfillment(context.$viewState) { $0.requiresExtraAccountSetup == false }
|
|
||||||
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .enabled))
|
|
||||||
try await deferred.fulfill()
|
try await deferred.fulfill()
|
||||||
|
|
||||||
|
// When the recovery is enabled.
|
||||||
|
deferred = deferFulfillment(context.$viewState) { $0.securityBannerMode == .none }
|
||||||
|
securityStateStateSubject.send(.init(verificationState: .verified, recoveryState: .enabled))
|
||||||
|
|
||||||
// Then the banner should no longer be shown.
|
// Then the banner should no longer be shown.
|
||||||
#expect(context.viewState.securityBannerMode == .none)
|
try await deferred.fulfill()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user