import SwiftUI struct SearchTab: View { @StateObject private var viewModel = SearchViewModel() var body: some View { VStack { SearchBar(text: $viewModel.searchText) .padding(.top, 8) List(viewModel.users) { user in NavigationLink(destination: ProfileTab( viewModel: LoginViewModel(), sheetType: .constant(nil), selectedAccount: .constant("@\(user.username)"), accounts: .constant(["@\(user.username)"])) ) { HStack { Image(systemName: "person.crop.circle") .resizable() .frame(width: 40, height: 40) .clipShape(Circle()) Text(user.username) } } } .listStyle(PlainListStyle()) } } } struct SearchBar: View { @Binding var text: String var body: some View { HStack { TextField("Поиск...", text: $text) .padding(8) .padding(.horizontal, 25) .background(Color(.systemGray6)) .cornerRadius(8) .overlay( HStack { Image(systemName: "magnifyingglass") .foregroundColor(.gray) .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading) .padding(.leading, 8) if !text.isEmpty { Button(action: { self.text = "" }) { Image(systemName: "multiply.circle.fill") .foregroundColor(.gray) .padding(.trailing, 8) } } } ) } .padding(.horizontal, 10) } } struct SearchTab_Previews: PreviewProvider { static var previews: some View { SearchTab() } }