Skip to content
Snippets Groups Projects
Commit 680f7c38 authored by Bruno Muniz's avatar Bruno Muniz :apple:
Browse files

Added phone component

parent c31748e7
No related branches found
No related tags found
2 merge requests!54Releasing 1.1.4,!50Search UI 2.0
...@@ -3,8 +3,10 @@ import Shared ...@@ -3,8 +3,10 @@ import Shared
final class SearchLeftView: UIView { final class SearchLeftView: UIView {
let tableView = UITableView() let tableView = UITableView()
let inputStackView = UIStackView()
let inputField = SearchComponent() let inputField = SearchComponent()
let emptyView = SearchLeftEmptyView() let emptyView = SearchLeftEmptyView()
let countryButton = SearchCountryComponent()
let placeholderView = SearchLeftPlaceholderView() let placeholderView = SearchLeftPlaceholderView()
init() { init() {
...@@ -14,8 +16,13 @@ final class SearchLeftView: UIView { ...@@ -14,8 +16,13 @@ final class SearchLeftView: UIView {
backgroundColor = Asset.neutralWhite.color backgroundColor = Asset.neutralWhite.color
tableView.backgroundColor = Asset.neutralWhite.color tableView.backgroundColor = Asset.neutralWhite.color
inputStackView.spacing = 5
countryButton.isHidden = true
inputStackView.addArrangedSubview(countryButton)
inputStackView.addArrangedSubview(inputField)
addSubview(inputStackView)
addSubview(tableView) addSubview(tableView)
addSubview(inputField)
addSubview(emptyView) addSubview(emptyView)
addSubview(placeholderView) addSubview(placeholderView)
...@@ -25,6 +32,8 @@ final class SearchLeftView: UIView { ...@@ -25,6 +32,8 @@ final class SearchLeftView: UIView {
required init?(coder: NSCoder) { nil } required init?(coder: NSCoder) { nil }
func updateUIForItem(item: SearchSegmentedControl.Item) { func updateUIForItem(item: SearchSegmentedControl.Item) {
countryButton.isHidden = item != .phone
let emptyTitle = Localized.Ud.Search.empty(item.written) let emptyTitle = Localized.Ud.Search.empty(item.written)
emptyView.titleLabel.text = emptyTitle emptyView.titleLabel.text = emptyTitle
...@@ -33,7 +42,7 @@ final class SearchLeftView: UIView { ...@@ -33,7 +42,7 @@ final class SearchLeftView: UIView {
} }
private func setupConstraints() { private func setupConstraints() {
inputField.snp.makeConstraints { inputStackView.snp.makeConstraints {
$0.top.equalToSuperview().offset(20) $0.top.equalToSuperview().offset(20)
$0.left.equalToSuperview().offset(20) $0.left.equalToSuperview().offset(20)
$0.right.equalToSuperview().offset(-20) $0.right.equalToSuperview().offset(-20)
......
...@@ -37,7 +37,52 @@ public final class SearchComponent: UIView { ...@@ -37,7 +37,52 @@ public final class SearchComponent: UIView {
public init() { public init() {
super.init(frame: .zero) super.init(frame: .zero)
setup()
containerView.layer.cornerRadius = 25
containerView.backgroundColor = Asset.neutralSecondary.color
leftImageView.image = Asset.lens.image
leftImageView.contentMode = .center
leftImageView.tintColor = Asset.neutralDisabled.color
rightButton.tintColor = Asset.neutralBody.color
rightButton.setImage(rightImage, for: .normal)
rightButton.setContentHuggingPriority(.required, for: .horizontal)
rightButton.setContentCompressionResistancePriority(.required, for: .horizontal)
inputField.delegate = self
inputField.textColor = Asset.neutralActive.color
inputField.font = Fonts.Mulish.regular.font(size: 16.0)
let attrPlaceholder
= NSAttributedString(
string: Localized.Shared.Search.placeholder,
attributes: [
.font: Fonts.Mulish.regular.font(size: 14.0) as Any,
.foregroundColor: Asset.neutralWeak.color
])
inputField.attributedPlaceholder = attrPlaceholder
inputField.textPublisher
.sink { [weak textSubject] in textSubject?.send($0) }
.store(in: &cancellables)
rightButton.publisher(for: .touchUpInside)
.sink { [weak rightSubject, self] in
if isEditingSubject.value == true {
abortEditing()
} else {
rightSubject?.send()
}
}.store(in: &cancellables)
addSubview(containerView)
containerView.addSubview(inputField)
containerView.addSubview(leftImageView)
containerView.addSubview(rightButton)
setupConstraints()
} }
required init?(coder: NSCoder) { nil } required init?(coder: NSCoder) { nil }
...@@ -86,55 +131,6 @@ public final class SearchComponent: UIView { ...@@ -86,55 +131,6 @@ public final class SearchComponent: UIView {
isEditingSubject.send(false) isEditingSubject.send(false)
} }
private func setup() {
containerView.layer.cornerRadius = 25
containerView.backgroundColor = Asset.neutralSecondary.color
leftImageView.image = Asset.lens.image
leftImageView.contentMode = .center
leftImageView.tintColor = Asset.neutralDisabled.color
rightButton.tintColor = Asset.neutralBody.color
rightButton.setImage(rightImage, for: .normal)
rightButton.setContentHuggingPriority(.required, for: .horizontal)
rightButton.setContentCompressionResistancePriority(.required, for: .horizontal)
inputField.delegate = self
inputField.textColor = Asset.neutralActive.color
inputField.font = Fonts.Mulish.regular.font(size: 16.0)
let attrPlaceholder
= NSAttributedString(
string: Localized.Shared.Search.placeholder,
attributes: [
.font: Fonts.Mulish.regular.font(size: 14.0) as Any,
.foregroundColor: Asset.neutralWeak.color
])
inputField.attributedPlaceholder = attrPlaceholder
inputField.textPublisher
.sink { [weak textSubject] in textSubject?.send($0) }
.store(in: &cancellables)
rightButton.publisher(for: .touchUpInside)
.sink { [weak rightSubject, self] in
if isEditingSubject.value == true {
abortEditing()
} else {
rightSubject?.send()
}
}.store(in: &cancellables)
addSubview(containerView)
containerView.addSubview(inputField)
containerView.addSubview(leftImageView)
containerView.addSubview(rightButton)
setupConstraints()
setupAccessibility()
}
private func setupConstraints() { private func setupConstraints() {
containerView.snp.makeConstraints { containerView.snp.makeConstraints {
$0.top.equalToSuperview() $0.top.equalToSuperview()
...@@ -164,11 +160,6 @@ public final class SearchComponent: UIView { ...@@ -164,11 +160,6 @@ public final class SearchComponent: UIView {
} }
} }
private func setupAccessibility() {
inputField.accessibilityIdentifier = Localized.Accessibility.Shared.Search.textField
rightButton.accessibilityIdentifier = Localized.Accessibility.Shared.Search.rightButton
}
public func textFieldDidBeginEditing(_ textField: UITextField) { public func textFieldDidBeginEditing(_ textField: UITextField) {
rightButton.setImage(Asset.sharedCross.image, for: .normal) rightButton.setImage(Asset.sharedCross.image, for: .normal)
isEditingSubject.send(true) isEditingSubject.send(true)
......
import UIKit
public final class SearchCountryComponent: UIControl {
let flagLabel = UILabel()
let codeLabel = UILabel()
let containerView = UIView()
public init() {
super.init(frame: .zero)
containerView.layer.cornerRadius = 25
containerView.backgroundColor = Asset.neutralSecondary.color
flagLabel.text = "🇺🇸"
codeLabel.text = "+1"
codeLabel.textColor = Asset.neutralDisabled.color
codeLabel.font = Fonts.Mulish.semiBold.font(size: 14.0)
addSubview(containerView)
containerView.addSubview(flagLabel)
containerView.addSubview(codeLabel)
setupConstraints()
flagLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
codeLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
}
required init?(coder: NSCoder) { nil }
private func setupConstraints() {
containerView.snp.makeConstraints {
$0.top.equalToSuperview()
$0.left.equalToSuperview()
$0.right.equalToSuperview()
$0.bottom.equalToSuperview()
$0.height.equalTo(50)
}
flagLabel.snp.makeConstraints {
$0.left.equalToSuperview().offset(13)
$0.centerY.equalToSuperview()
}
codeLabel.snp.makeConstraints {
$0.left.equalTo(flagLabel.snp.right).offset(10)
$0.right.equalToSuperview().offset(-13)
$0.centerY.equalToSuperview()
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment