From 893b3bf370ab3da1cbdb7974693001a88cd56f87 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Sun, 5 Jul 2026 18:55:22 -0700 Subject: [PATCH] Tab Bar Load Animation Nucleic-Session: EEC60FAE-8368-49CA-9202-7026C12E7F8C Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote/Views/AdaptiveRootView.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/NucleicRemote/NucleicRemote/Views/AdaptiveRootView.swift b/NucleicRemote/NucleicRemote/Views/AdaptiveRootView.swift index 42f20d3..bf1daba 100644 --- a/NucleicRemote/NucleicRemote/Views/AdaptiveRootView.swift +++ b/NucleicRemote/NucleicRemote/Views/AdaptiveRootView.swift @@ -46,9 +46,10 @@ struct CompactRootView: View { @State private var barHeight: CGFloat = 72 /// The bar owns the bottom edge on the top-level tabs, but yields it to a pushed session's - /// floating glass chat bar — so it's hidden exactly while a session detail is on screen - /// (`openSessionID` is set by `SessionDetailView`'s appear/disappear, our animation trigger). - private var showsTabBar: Bool { store.openSessionID == nil } + /// floating glass chat bar (`openSessionID`, set by `SessionDetailView`'s appear/disappear) and + /// to the new-chat composer while it's up (`showNewChat`) — both slide it out, so the composer + /// doesn't just stack on top of a lingering tab bar. + private var showsTabBar: Bool { store.openSessionID == nil && !showNewChat } /// The "+" is inert without control scope or a project to start in, so it's shown only when a /// chat could actually be kicked off (mirrors `NewChatAffordance.canStart`).