From 0f0c8a68a4d20c5e109000f08f8630387fc7db85 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Mon, 6 Jul 2026 00:41:09 -0700 Subject: [PATCH] Session View Animation Fix Nucleic-Session: 34001BF5-66C2-4D6D-844D-EE95727B8D85 Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote/Views/SessionsView.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/NucleicRemote/NucleicRemote/Views/SessionsView.swift b/NucleicRemote/NucleicRemote/Views/SessionsView.swift index 4389191..cd4be2a 100644 --- a/NucleicRemote/NucleicRemote/Views/SessionsView.swift +++ b/NucleicRemote/NucleicRemote/Views/SessionsView.swift @@ -96,11 +96,13 @@ struct SessionsView: View { } // A notification tap while this tab is already up. .onChange(of: store.pendingRoute) { consumeRoute() } - // Drive the floating tab bar straight off the navigation path: it empties the instant a - // back-swipe/tap begins, so the bar slides back in immediately instead of waiting for - // `SessionDetailView.onDisappear` (which fires only at the end of the pop transition). + // The tab bar's visibility is owned by the session lifecycle (`RemoteStore.open`/ + // `closeOpen`), so it hides/shows no matter which tab a chat opens from. This handler is + // just the responsiveness refinement for *this* tab: the path empties the instant a + // back-swipe/tap begins, so clearing here slides the bar back in immediately instead of + // waiting for `SessionDetailView.onDisappear` (which fires only at the end of the pop). .onChange(of: path) { _, newPath in - store.compactDetailPresented = !newPath.isEmpty + if newPath.isEmpty { store.compactDetailPresented = false } } } }