import SwiftUI struct TopBarView: View { var title: String // Состояния для ProfileTab @Binding var selectedAccount: String // @Binding var sheetType: ProfileTab.SheetType? var accounts: [String] // var viewModel: LoginViewModel @ObservedObject var viewModel: LoginViewModel // Привязка для управления боковым меню @Binding var isSideMenuPresented: Bool var isHomeTab: Bool { return title == "Home" } var isChatsTab: Bool { return title == "Chats" } var isProfileTab: Bool { return title == "Profile" } var body: some View { VStack(spacing: 0) { HStack { // Кнопка "Гамбургер" для открытия меню Button(action: { withAnimation { isSideMenuPresented.toggle() } }) { Image(systemName: "line.horizontal.3") .imageScale(.large) .foregroundColor(.primary) } // Spacer() if isHomeTab{ Text("Yobble") .font(.largeTitle) .fontWeight(.bold) Spacer() } else if isProfileTab { Spacer() Button(action: { }) { HStack(spacing: 4) { Text("@\(viewModel.username)") .font(.headline) .foregroundColor(.primary) Image(systemName: "chevron.down") .font(.subheadline) .foregroundColor(.gray) } } Spacer() } else { Text(title) .font(.largeTitle) .fontWeight(.bold) Spacer() } if isHomeTab{ HStack(spacing: 20) { // Кнопка поиска Button(action: { // пока ничего не делаем }) { Image(systemName: "magnifyingglass") .imageScale(.large) .foregroundColor(.primary) } // Кнопка уведомлений Button(action: { // пока ничего не делаем }) { Image(systemName: "bell") .imageScale(.large) .foregroundColor(.primary) } } } else if isChatsTab { Button(action: { NotificationCenter.default.post(name: .debugRefreshChats, object: nil) }) { Text(NSLocalizedString("DEBUG UPDATE", comment: "")) .foregroundColor(.primary) } } else if isProfileTab { NavigationLink(destination: SettingsView(viewModel: viewModel)) { Image(systemName: "wrench") .imageScale(.large) .foregroundColor(.primary) } } } .padding() .frame(height: 50) // Стандартная высота для нав. бара Divider() } .background(Color(UIColor.systemBackground)) } } struct TopBarView_Previews: PreviewProvider { static var previews: some View { /*@START_MENU_TOKEN@*/Text("Hello, World!")/*@END_MENU_TOKEN@*/ } }