Files
2023-03-02 18:28:42 +03:00

69 lines
2.2 KiB
Swift

//
// 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()
}
}