fix: allow verification sheet in private chat via sidebar navigation (#988) (#1046)

Co-authored-by: jack <212554440+jackjackbits@users.noreply.github.com>
This commit is contained in:
chernomortsev evgeny
2026-03-12 08:44:43 -10:00
committed by GitHub
co-authored by jack
parent 02b2a006c5
commit 187a5c3195
+16 -1
View File
@@ -192,7 +192,7 @@ struct ContentView: View {
.onDisappear { viewModel.isAppInfoPresented = false } .onDisappear { viewModel.isAppInfoPresented = false }
} }
.sheet(isPresented: Binding( .sheet(isPresented: Binding(
get: { viewModel.showingFingerprintFor != nil }, get: { viewModel.showingFingerprintFor != nil && !showSidebar && viewModel.selectedPrivateChatPeer == nil },
set: { _ in viewModel.showingFingerprintFor = nil } set: { _ in viewModel.showingFingerprintFor = nil }
)) { )) {
if let peerID = viewModel.showingFingerprintFor { if let peerID = viewModel.showingFingerprintFor {
@@ -791,6 +791,7 @@ struct ContentView: View {
// MARK: - Sheet Content // MARK: - Sheet Content
private var peopleSheetView: some View { private var peopleSheetView: some View {
NavigationStack {
Group { Group {
if viewModel.selectedPrivateChatPeer != nil { if viewModel.selectedPrivateChatPeer != nil {
privateChatSheetView privateChatSheetView
@@ -798,6 +799,20 @@ struct ContentView: View {
peopleListSheetView 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) .background(backgroundColor)
.foregroundColor(textColor) .foregroundColor(textColor)
#if os(macOS) #if os(macOS)