From aac0a25c4d387bb164a2636f1e2bd1dc50d3f1b5 Mon Sep 17 00:00:00 2001 From: cheykrym Date: Thu, 23 Oct 2025 23:04:09 +0300 Subject: [PATCH] add qr screen --- yobble/Components/TopBarView.swift | 15 +++++++++++++++ yobble/Resources/Localizable.xcstrings | 3 +++ yobble/Views/Tab/MainView.swift | 2 ++ yobble/Views/Tab/QrView.swift | 11 +++++++++++ 4 files changed, 31 insertions(+) create mode 100644 yobble/Views/Tab/QrView.swift diff --git a/yobble/Components/TopBarView.swift b/yobble/Components/TopBarView.swift index 1420424..bef338e 100644 --- a/yobble/Components/TopBarView.swift +++ b/yobble/Components/TopBarView.swift @@ -11,6 +11,7 @@ struct TopBarView: View { // var viewModel: LoginViewModel @ObservedObject var viewModel: LoginViewModel @Binding var isSettingsPresented: Bool + @Binding var isQrPresented: Bool // Привязка для управления боковым меню @Binding var isSideMenuPresented: Bool @@ -28,6 +29,10 @@ struct TopBarView: View { var isProfileTab: Bool { return title == "Profile" } + + var isContactsTab: Bool { + return title == "Contacts" + } private var statusMessage: String? { if viewModel.chatLoadingState == .loading { @@ -112,6 +117,14 @@ struct TopBarView: View { .imageScale(.large) .foregroundColor(.primary) } + } else if isContactsTab { + NavigationLink(isActive: $isQrPresented) { + QrView() + } label: { + Image(systemName: "qrcode.viewfinder") + .imageScale(.large) + .foregroundColor(.primary) + } } // else if isChatsTab { @@ -220,6 +233,7 @@ struct TopBarView_Previews: PreviewProvider { @StateObject private var viewModel = LoginViewModel() @State private var searchText: String = "" @State private var isSettingsPresented = false + @State private var isQrPresented = false var body: some View { TopBarView( @@ -229,6 +243,7 @@ struct TopBarView_Previews: PreviewProvider { accounts: [selectedAccount], viewModel: viewModel, isSettingsPresented: $isSettingsPresented, + isQrPresented: $isSettingsPresented, isSideMenuPresented: $isSideMenuPresented, chatSearchRevealProgress: $revealProgress, chatSearchText: $searchText, diff --git a/yobble/Resources/Localizable.xcstrings b/yobble/Resources/Localizable.xcstrings index cdcdc46..468bdbb 100644 --- a/yobble/Resources/Localizable.xcstrings +++ b/yobble/Resources/Localizable.xcstrings @@ -158,6 +158,9 @@ } } } + }, + "Qr" : { + }, "Yobble" : { "localizations" : { diff --git a/yobble/Views/Tab/MainView.swift b/yobble/Views/Tab/MainView.swift index a972b42..6fa66ee 100644 --- a/yobble/Views/Tab/MainView.swift +++ b/yobble/Views/Tab/MainView.swift @@ -18,6 +18,7 @@ struct MainView: View { @State private var chatSearchRevealProgress: CGFloat = 0 @State private var chatSearchText: String = "" @State private var isSettingsPresented = false + @State private var isQrPresented = false @State private var deepLinkChatItem: PrivateChatListItem? @State private var isDeepLinkChatActive = false @@ -50,6 +51,7 @@ struct MainView: View { accounts: accounts, viewModel: viewModel, isSettingsPresented: $isSettingsPresented, + isQrPresented: $isQrPresented, isSideMenuPresented: $isSideMenuPresented, chatSearchRevealProgress: $chatSearchRevealProgress, chatSearchText: $chatSearchText diff --git a/yobble/Views/Tab/QrView.swift b/yobble/Views/Tab/QrView.swift new file mode 100644 index 0000000..67e8881 --- /dev/null +++ b/yobble/Views/Tab/QrView.swift @@ -0,0 +1,11 @@ +import SwiftUI + +struct QrView: View { + + var body: some View { + Form { + + } + .navigationTitle("Qr") + } +}