Merge branch 'feature/TextArea' into 'develop'
VDS Brand 3.0 Text Area for IOS See merge request BPHV_MIPS/vds_ios_sample!55
This commit is contained in:
commit
1d1c57d917
@ -5,7 +5,6 @@
|
||||
// Created by Matt Bruce on 1/10/23.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import Foundation
|
||||
import UIKit
|
||||
import VDS
|
||||
@ -23,28 +22,38 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
var showErrorSwitch = Toggle()
|
||||
var tooltipTitleTextField = TextField()
|
||||
var tooltipContentTextField = TextField()
|
||||
var maxLengthTextField = NumericField()
|
||||
var readOnlySwitch = Toggle()
|
||||
|
||||
lazy var heightPickerSelectorView = {
|
||||
PickerSelectorView(title: "2X",
|
||||
picker: self.picker,
|
||||
items: TextArea.Height.allCases)
|
||||
}()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
addContentTopView(view: component)
|
||||
|
||||
component.text = "Starting Text"
|
||||
setupPicker()
|
||||
setupModel()
|
||||
}
|
||||
|
||||
override func setupForm(){
|
||||
super.setupForm()
|
||||
super.setupForm()
|
||||
addFormRow(label: "Disabled", view: disabledSwitch)
|
||||
addFormRow(label: "Required", view: requiredSwitch)
|
||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||
addFormRow(label: "Label Text", view: labelTextField)
|
||||
addFormRow(label: "Helper Text", view: helperTextField)
|
||||
addFormRow(label: "Read Only", view: readOnlySwitch)
|
||||
addFormRow(label: "Error", view: showErrorSwitch)
|
||||
addFormRow(label: "Error Text", view: errorTextField)
|
||||
addFormRow(label: "Width", view: widthTextField)
|
||||
addFormRow(label: "ToolTip Title", view: tooltipTitleTextField)
|
||||
addFormRow(label: "ToolTip Content", view: tooltipContentTextField)
|
||||
|
||||
addFormRow(label: "Character Count", view: maxLengthTextField)
|
||||
addFormRow(label: "Min Height", view: heightPickerSelectorView)
|
||||
|
||||
requiredSwitch.onChange = { [weak self] sender in
|
||||
self?.component.required = sender.isOn
|
||||
}
|
||||
@ -61,6 +70,10 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
self?.component.isEnabled = !sender.isOn
|
||||
}
|
||||
|
||||
readOnlySwitch.onChange = { [weak self] sender in
|
||||
self?.component.readOnly = sender.isOn
|
||||
}
|
||||
|
||||
labelTextField
|
||||
.textPublisher
|
||||
.sink { [weak self] text in
|
||||
@ -82,7 +95,10 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
widthTextField
|
||||
.numberPublisher
|
||||
.sink { [weak self] number in
|
||||
guard let number else { return }
|
||||
guard let number else {
|
||||
self?.component.width = nil
|
||||
return
|
||||
}
|
||||
self?.component.width = number.cgFloatValue
|
||||
}.store(in: &subscribers)
|
||||
|
||||
@ -98,6 +114,15 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
self?.updateTooltip()
|
||||
}.store(in: &subscribers)
|
||||
|
||||
maxLengthTextField
|
||||
.numberPublisher
|
||||
.sink { [weak self] number in
|
||||
guard let number else {
|
||||
self?.component.maxLength = nil
|
||||
return
|
||||
}
|
||||
self?.component.maxLength = number.intValue
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
|
||||
func setupModel() {
|
||||
@ -106,15 +131,14 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
component.helperText = "For example: 123 Verizon St"
|
||||
component.errorText = "Enter a valid address."
|
||||
component.tooltipModel = .init(title: "Check the formatting of your address", content:"House/Building number then street name")
|
||||
|
||||
component
|
||||
.publisher(for: .valueChanged)
|
||||
.sink { component in
|
||||
if let text = component.value {
|
||||
print("text entry: \(text)")
|
||||
} else {
|
||||
print("text entry: null")
|
||||
}
|
||||
// if let text = component.value {
|
||||
// print("text entry: \(text)")
|
||||
// } else {
|
||||
// print("text entry: null")
|
||||
// }
|
||||
}.store(in: &subscribers)
|
||||
|
||||
//setup UI
|
||||
@ -135,6 +159,10 @@ class TextAreaViewController: BaseViewController<TextArea> {
|
||||
self?.component.surface = item
|
||||
self?.contentTopView.backgroundColor = item.color
|
||||
}
|
||||
|
||||
heightPickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||
self?.component.minHeight = item
|
||||
}
|
||||
}
|
||||
|
||||
func updateTooltip() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user