// // CommonTextFieldSearch.swift // Malinka // // Created by NUT.Tech on 07.02.2023. // Copyright © 2023 NUT.Tech. All rights reserved. // import SwiftUI import WalletUIComponents struct CommonTextFieldSearch: View { private enum Constants { enum Image { static let search = "common-search" static let close = "common-close" } enum Geometry { static let imageSize: CGFloat = 14 static let textSize: CGFloat = 14 static let buttonSize: CGFloat = 24 static let leadingPadding: CGFloat = 12 static let trailingPadding: CGFloat = 8 static let hSpace: CGFloat = 8 static let height: CGFloat = 40 static let cornerRadius: CGFloat = 8 } } @ObservedObject var viewModel: TextFieldViewModel var body: some View { HStack(alignment: .center, spacing: Constants.Geometry.hSpace) { Image(Constants.Image.search) .frame(width: Constants.Geometry.imageSize, height: Constants.Geometry.imageSize) TextField(viewModel: viewModel, font: .font(style: .medium, size: Constants.Geometry.textSize), textColor: Asset.textGranite.color) if self.viewModel.isCloseButtonVisible { Button(action: { self.viewModel.clearButtonAction() }, label: { Image(Constants.Image.close) }) .frame(width: Constants.Geometry.buttonSize, height: Constants.Geometry.buttonSize) } } .padding(.leading, Constants.Geometry.leadingPadding) .padding(.trailing, Constants.Geometry.trailingPadding) .frame(height: Constants.Geometry.height) .background(Color(Asset.marble.color)) .cornerRadius(Constants.Geometry.cornerRadius) } } struct CommonTextFieldSearchNew_Previews: PreviewProvider { static var previews: some View { CommonTextFieldSearch(viewModel: TextFieldViewModel()) .previewLayout(.sizeThatFits) .padding() } }