From 187a5c31957de6e87af0d0d0a0d472735e70fc0b Mon Sep 17 00:00:00 2001 From: chernomortsev evgeny Date: Thu, 12 Mar 2026 21:44:43 +0300 Subject: [PATCH] fix: allow verification sheet in private chat via sidebar navigation (#988) (#1046) Co-authored-by: jack <212554440+jackjackbits@users.noreply.github.com> --- bitchat/Views/ContentView.swift | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/bitchat/Views/ContentView.swift b/bitchat/Views/ContentView.swift index 36c379a4..a91f2814 100644 --- a/bitchat/Views/ContentView.swift +++ b/bitchat/Views/ContentView.swift @@ -192,7 +192,7 @@ struct ContentView: View { .onDisappear { viewModel.isAppInfoPresented = false } } .sheet(isPresented: Binding( - get: { viewModel.showingFingerprintFor != nil }, + get: { viewModel.showingFingerprintFor != nil && !showSidebar && viewModel.selectedPrivateChatPeer == nil }, set: { _ in viewModel.showingFingerprintFor = nil } )) { if let peerID = viewModel.showingFingerprintFor { @@ -791,11 +791,26 @@ struct ContentView: View { // MARK: - Sheet Content private var peopleSheetView: some View { - Group { - if viewModel.selectedPrivateChatPeer != nil { - privateChatSheetView - } else { - peopleListSheetView + NavigationStack { + Group { + if viewModel.selectedPrivateChatPeer != nil { + privateChatSheetView + } else { + peopleListSheetView + } + } + .navigationDestination(isPresented: Binding( + get: { viewModel.showingFingerprintFor != nil && (showSidebar || viewModel.selectedPrivateChatPeer != nil) }, + set: { isPresented in + if !isPresented { + viewModel.showingFingerprintFor = nil + } + } + )) { + if let peerID = viewModel.showingFingerprintFor { + FingerprintView(viewModel: viewModel, peerID: peerID) + .environmentObject(viewModel) + } } } .background(backgroundColor)