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://")