From 0563ec8bf86585a7bc0246c25af1d1af0c992b52 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Tue, 7 Feb 2023 14:06:27 -0800 Subject: [PATCH] Fix issue where navigation fails pop to root when switching timelines Sometimes the navigation stack fails to pop, fix this Changelog-Fixed: Fix issue where navigation fails pop to root when switching timelines --- damus/ContentView.swift | 7 +++++++ damus/Views/Relays/RelayDetailView.swift | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/damus/ContentView.swift b/damus/ContentView.swift index 412d4a3d..1c0fbbaa 100644 --- a/damus/ContentView.swift +++ b/damus/ContentView.swift @@ -138,6 +138,12 @@ struct ContentView: View { } } + func popToRoot() { + profile_open = false + thread_open = false + search_open = false + } + func MainContent(damus: DamusState) -> some View { VStack { NavigationLink(destination: MaybeProfileView, isActive: $profile_open) { @@ -520,6 +526,7 @@ struct ContentView: View { } func switch_timeline(_ timeline: Timeline) { + self.popToRoot() NotificationCenter.default.post(name: .switched_timeline, object: timeline) if timeline == self.selected_timeline { diff --git a/damus/Views/Relays/RelayDetailView.swift b/damus/Views/Relays/RelayDetailView.swift index f0c97a47..ddb6af22 100644 --- a/damus/Views/Relays/RelayDetailView.swift +++ b/damus/Views/Relays/RelayDetailView.swift @@ -16,6 +16,8 @@ struct RelayDetailView: View { @State var conn_color: Color + @Environment(\.dismiss) var dismiss + func FieldText(_ str: String?) -> some View { Text(str ?? "No data available") } @@ -64,6 +66,9 @@ struct RelayDetailView: View { ProgressView() } } + .onReceive(handle_notify(.switched_timeline)) { notif in + dismiss() + } .navigationTitle(nip11?.name ?? "") .task { var urlString = relay.replacingOccurrences(of: "wss://", with: "https://")