diff --git a/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenModels.swift b/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenModels.swift index ae931ec08..65535cb46 100644 --- a/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenModels.swift +++ b/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenModels.swift @@ -52,6 +52,8 @@ struct SettingsScreenViewState: BindableState { var securitySectionMode = SettingsScreenSecuritySectionMode.none var showSecuritySectionBadge = false + + var showBlockedUsers = false } enum SettingsScreenViewAction { diff --git a/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenViewModel.swift b/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenViewModel.swift index a74d296b9..57a674d2f 100644 --- a/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenViewModel.swift +++ b/ElementX/Sources/Screens/Settings/SettingsScreen/SettingsScreenViewModel.swift @@ -72,6 +72,18 @@ class SettingsScreenViewModel: SettingsScreenViewModelType, SettingsScreenViewMo } .store(in: &cancellables) + userSession.clientProxy.ignoredUsersPublisher + .receive(on: DispatchQueue.main) + .map { + guard let blockedUsers = $0 else { + return false + } + + return !blockedUsers.isEmpty + } + .weakAssign(to: \.state.showBlockedUsers, on: self) + .store(in: &cancellables) + Task { await userSession.clientProxy.loadUserAvatarURL() await userSession.clientProxy.loadUserDisplayName() diff --git a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift index 34c3021e2..487083dce 100644 --- a/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift +++ b/ElementX/Sources/Screens/Settings/SettingsScreen/View/SettingsScreen.swift @@ -144,12 +144,14 @@ struct SettingsScreen: View { }) .accessibilityIdentifier(A11yIdentifiers.settingsScreen.about) - ListRow(label: .default(title: L10n.commonBlockedUsers, - icon: \.block), - kind: .navigationLink { - context.send(viewAction: .blockedUsers) - }) - .accessibilityIdentifier(A11yIdentifiers.settingsScreen.blockedUsers) + if context.viewState.showBlockedUsers { + ListRow(label: .default(title: L10n.commonBlockedUsers, + icon: \.block), + kind: .navigationLink { + context.send(viewAction: .blockedUsers) + }) + .accessibilityIdentifier(A11yIdentifiers.settingsScreen.blockedUsers) + } } } diff --git a/PreviewTests/__Snapshots__/PreviewTests/test_settingsScreen.1.png b/PreviewTests/__Snapshots__/PreviewTests/test_settingsScreen.1.png index 40935f2d2..46840bfd4 100644 --- a/PreviewTests/__Snapshots__/PreviewTests/test_settingsScreen.1.png +++ b/PreviewTests/__Snapshots__/PreviewTests/test_settingsScreen.1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef88023b3f423e15d540d755d987edf4a5d7ea2580a30509d79d23ff93235c13 -size 174925 +oid sha256:a0e4f20a3da82d547d5802aa2dc96db5de6520792be495069ef9c7a80168c655 +size 171367