Hide the tab bar when pushing screens on iPhone as requested by the designs. (#4444)

Make the tab bar hide when pushing screens on iPhone as requested by the designs.

Annoyingly we couldn't simply add a second call to .toolbar(.hidden, for:.tabBar) on the pushed screens, but this way is automatic and there's still an override so it's good enough for now.
This commit is contained in:
Doug
2025-08-27 10:31:56 +01:00
committed by GitHub
parent cb0a13b833
commit c140209e0c
2 changed files with 26 additions and 5 deletions
@@ -106,9 +106,10 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
notificationManager: notificationManager,
stateMachineFactory: stateMachineFactory)
chatsTabDetails = .init(tag: HomeTab.chats, title: L10n.screenHomeTabChats, icon: \.chat, selectedIcon: \.chatSolid)
chatsTabDetails.navigationSplitCoordinator = chatsSplitCoordinator
if !appSettings.spacesEnabled {
chatsTabDetails.barVisibility = .hidden
chatsTabDetails.barVisibilityOverride = .hidden
}
let spacesSplitCoordinator = NavigationSplitCoordinator(placeholderCoordinator: PlaceholderScreenCoordinator())
@@ -116,6 +117,7 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
navigationSplitCoordinator: spacesSplitCoordinator,
userIndicatorController: ServiceLocator.shared.userIndicatorController)
spacesTabDetails = .init(tag: HomeTab.spaces, title: L10n.screenHomeTabSpaces, icon: \.space, selectedIcon: \.spaceSolid)
spacesTabDetails.navigationSplitCoordinator = spacesSplitCoordinator
onboardingStackCoordinator = NavigationStackCoordinator()
onboardingFlowCoordinator = OnboardingFlowCoordinator(userSession: userSession,
@@ -272,8 +274,8 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {
appSettings.$spacesEnabled
.combineLatest(userSession.clientProxy.spaceService.joinedSpacesPublisher)
.map { $0 && !$1.isEmpty ? .automatic : .hidden }
.weakAssign(to: \.chatsTabDetails.barVisibility, on: self)
.map { $0 && !$1.isEmpty ? nil : .hidden }
.weakAssign(to: \.chatsTabDetails.barVisibilityOverride, on: self)
.store(in: &cancellables)
}