added added error/success icons
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
b3e2469393
commit
aafb7770b2
@ -68,13 +68,32 @@ open class EntryField: Control, Accessable {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
internal var containerStackView: UIStackView = {
|
||||||
|
return UIStackView().with {
|
||||||
|
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
$0.axis = .horizontal
|
||||||
|
$0.distribution = .fillProportionally
|
||||||
|
$0.alignment = .top
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
internal var controlContainerView: UIView = {
|
||||||
|
return UIView().with {
|
||||||
|
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
|
||||||
internal var tooltipView: UIView?
|
internal var tooltipView: UIView?
|
||||||
|
internal var icon: Icon = Icon().with {
|
||||||
|
$0.size = .small
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Configuration Properties
|
// MARK: - Configuration Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// Sizes are from InVision design specs.
|
// Sizes are from InVision design specs.
|
||||||
internal let containerSize = CGSize(width: 45, height: 45)
|
internal let containerSize = CGSize(width: 45, height: 44)
|
||||||
|
|
||||||
internal let primaryColorConfig = ViewColorConfiguration().with {
|
internal let primaryColorConfig = ViewColorConfiguration().with {
|
||||||
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forDisabled: true)
|
$0.setSurfaceColors(VDSColor.interactiveDisabledOnlight, VDSColor.interactiveDisabledOndark, forDisabled: true)
|
||||||
@ -174,7 +193,20 @@ open class EntryField: Control, Accessable {
|
|||||||
|
|
||||||
widthConstraint = containerView.widthAnchor.constraint(equalToConstant: 0)
|
widthConstraint = containerView.widthAnchor.constraint(equalToConstant: 0)
|
||||||
|
|
||||||
|
//get the container this is what is color
|
||||||
|
//border, internal, etc...
|
||||||
let container = getContainer()
|
let container = getContainer()
|
||||||
|
|
||||||
|
//add ContainerStackView
|
||||||
|
//this is the horizontal stack that contains
|
||||||
|
//the left, InputContainer, Icons, Buttons
|
||||||
|
container.addSubview(containerStackView)
|
||||||
|
containerStackView.pinToSuperView(.init(top: 12, left: 12, bottom: 12, right: 12))
|
||||||
|
|
||||||
|
//add the view to add input fields
|
||||||
|
containerStackView.addArrangedSubview(controlContainerView)
|
||||||
|
containerStackView.addArrangedSubview(icon)
|
||||||
|
|
||||||
stackView.addArrangedSubview(titleLabel)
|
stackView.addArrangedSubview(titleLabel)
|
||||||
stackView.addArrangedSubview(container)
|
stackView.addArrangedSubview(container)
|
||||||
stackView.addArrangedSubview(errorLabel)
|
stackView.addArrangedSubview(errorLabel)
|
||||||
@ -345,7 +377,12 @@ open class EntryField: Control, Accessable {
|
|||||||
errorLabel.surface = surface
|
errorLabel.surface = surface
|
||||||
errorLabel.disabled = disabled
|
errorLabel.disabled = disabled
|
||||||
errorLabel.isHidden = false
|
errorLabel.isHidden = false
|
||||||
|
icon.name = .error
|
||||||
|
icon.color = .black
|
||||||
|
icon.surface = surface
|
||||||
|
icon.isHidden = disabled
|
||||||
} else {
|
} else {
|
||||||
|
icon.isHidden = true
|
||||||
errorLabel.isHidden = true
|
errorLabel.isHidden = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ public class InputField: EntryField {
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Private Properties
|
// MARK: - Private Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
internal var containerStackView: UIStackView = {
|
internal var inputFieldStackView: UIStackView = {
|
||||||
return UIStackView().with {
|
return UIStackView().with {
|
||||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||||
$0.axis = .horizontal
|
$0.axis = .horizontal
|
||||||
@ -92,6 +92,17 @@ public class InputField: EntryField {
|
|||||||
$0.typograpicalStyle = .BodySmall
|
$0.typograpicalStyle = .BodySmall
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var textField = UITextField().with {
|
||||||
|
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
$0.font = TypographicalStyle.BodyLarge.font
|
||||||
|
}
|
||||||
|
|
||||||
|
public var textFieldTextColorConfiguration: AnyColorable = ViewColorConfiguration().with {
|
||||||
|
$0.setSurfaceColors(VDSColor.elementsSecondaryOnlight, VDSColor.elementsSecondaryOndark, forDisabled: true)
|
||||||
|
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forDisabled: false)
|
||||||
|
}.eraseToAnyColorable()
|
||||||
|
|
||||||
|
|
||||||
internal var minWidthConstraint: NSLayoutConstraint?
|
internal var minWidthConstraint: NSLayoutConstraint?
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -103,6 +114,10 @@ public class InputField: EntryField {
|
|||||||
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
|
minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
|
||||||
minWidthConstraint?.isActive = true
|
minWidthConstraint?.isActive = true
|
||||||
|
|
||||||
|
controlContainerView.addSubview(textField)
|
||||||
|
textField.pinToSuperView()
|
||||||
|
textField.heightAnchor.constraint(equalToConstant: 20).isActive = true
|
||||||
|
|
||||||
stackView.addArrangedSubview(successLabel)
|
stackView.addArrangedSubview(successLabel)
|
||||||
stackView.setCustomSpacing(8, after: successLabel)
|
stackView.setCustomSpacing(8, after: successLabel)
|
||||||
|
|
||||||
@ -126,8 +141,8 @@ public class InputField: EntryField {
|
|||||||
}
|
}
|
||||||
|
|
||||||
open override func getContainer() -> UIView {
|
open override func getContainer() -> UIView {
|
||||||
containerStackView.addArrangedSubview(containerView)
|
inputFieldStackView.addArrangedSubview(containerView)
|
||||||
return containerStackView
|
return inputFieldStackView
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -136,6 +151,9 @@ public class InputField: EntryField {
|
|||||||
open override func updateView() {
|
open override func updateView() {
|
||||||
super.updateView()
|
super.updateView()
|
||||||
|
|
||||||
|
textField.isEnabled = isEnabled
|
||||||
|
textField.textColor = textFieldTextColorConfiguration.getColor(self)
|
||||||
|
|
||||||
//show error or success
|
//show error or success
|
||||||
if showError, let _ = errorText {
|
if showError, let _ = errorText {
|
||||||
successLabel.isHidden = true
|
successLabel.isHidden = true
|
||||||
@ -146,10 +164,13 @@ public class InputField: EntryField {
|
|||||||
successLabel.disabled = disabled
|
successLabel.disabled = disabled
|
||||||
successLabel.isHidden = false
|
successLabel.isHidden = false
|
||||||
errorLabel.isHidden = true
|
errorLabel.isHidden = true
|
||||||
|
icon.name = .checkmarkAlt
|
||||||
|
icon.color = .black
|
||||||
|
icon.surface = surface
|
||||||
|
icon.isHidden = disabled
|
||||||
} else {
|
} else {
|
||||||
|
icon.isHidden = true
|
||||||
successLabel.isHidden = true
|
successLabel.isHidden = true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//set the width constraints
|
//set the width constraints
|
||||||
@ -173,12 +194,12 @@ public class InputField: EntryField {
|
|||||||
//set the helper label position
|
//set the helper label position
|
||||||
if helperText != nil {
|
if helperText != nil {
|
||||||
if helperTextPlacement == .right {
|
if helperTextPlacement == .right {
|
||||||
containerStackView.spacing = 12
|
inputFieldStackView.spacing = 12
|
||||||
containerStackView.distribution = .fillEqually
|
inputFieldStackView.distribution = .fillEqually
|
||||||
containerStackView.addArrangedSubview(helperLabel)
|
inputFieldStackView.addArrangedSubview(helperLabel)
|
||||||
} else {
|
} else {
|
||||||
containerStackView.spacing = 0
|
inputFieldStackView.spacing = 0
|
||||||
containerStackView.distribution = .fill
|
inputFieldStackView.distribution = .fill
|
||||||
stackView.addArrangedSubview(helperLabel)
|
stackView.addArrangedSubview(helperLabel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user