Digital ACT191 story ONEAPP-6682 adding max length textfield to TextArea form

This commit is contained in:
vasavk 2024-02-23 16:01:43 +05:30
parent 719ae8b9fc
commit 44deb6a680

View File

@ -5,7 +5,6 @@
// Created by Matt Bruce on 1/10/23. // Created by Matt Bruce on 1/10/23.
// //
import Foundation
import Foundation import Foundation
import UIKit import UIKit
import VDS import VDS
@ -23,7 +22,8 @@ class TextAreaViewController: BaseViewController<TextArea> {
var showErrorSwitch = Toggle() var showErrorSwitch = Toggle()
var tooltipTitleTextField = TextField() var tooltipTitleTextField = TextField()
var tooltipContentTextField = TextField() var tooltipContentTextField = TextField()
var maxLengthTextField = NumericField()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
addContentTopView(view: component) addContentTopView(view: component)
@ -44,7 +44,8 @@ class TextAreaViewController: BaseViewController<TextArea> {
addFormRow(label: "Width", view: widthTextField) addFormRow(label: "Width", view: widthTextField)
addFormRow(label: "ToolTip Title", view: tooltipTitleTextField) addFormRow(label: "ToolTip Title", view: tooltipTitleTextField)
addFormRow(label: "ToolTip Content", view: tooltipContentTextField) addFormRow(label: "ToolTip Content", view: tooltipContentTextField)
addFormRow(label: "Max Length", view: maxLengthTextField)
requiredSwitch.onChange = { [weak self] sender in requiredSwitch.onChange = { [weak self] sender in
self?.component.required = sender.isOn self?.component.required = sender.isOn
} }
@ -98,6 +99,12 @@ class TextAreaViewController: BaseViewController<TextArea> {
self?.updateTooltip() self?.updateTooltip()
}.store(in: &subscribers) }.store(in: &subscribers)
maxLengthTextField
.numberPublisher
.sink { [weak self] number in
guard let number else { return }
self?.component.maxLength = number.intValue
}.store(in: &subscribers)
} }
func setupModel() { func setupModel() {
@ -106,7 +113,7 @@ class TextAreaViewController: BaseViewController<TextArea> {
component.helperText = "For example: 123 Verizon St" component.helperText = "For example: 123 Verizon St"
component.errorText = "Enter a valid address." component.errorText = "Enter a valid address."
component.tooltipModel = .init(title: "Check the formatting of your address", content:"House/Building number then street name") component.tooltipModel = .init(title: "Check the formatting of your address", content:"House/Building number then street name")
component.maxLength = 10
component component
.publisher(for: .valueChanged) .publisher(for: .valueChanged)
.sink { component in .sink { component in
@ -125,6 +132,7 @@ class TextAreaViewController: BaseViewController<TextArea> {
helperTextField.text = component.helperText helperTextField.text = component.helperText
showErrorSwitch.isOn = component.showError showErrorSwitch.isOn = component.showError
errorTextField.text = component.errorText errorTextField.text = component.errorText
maxLengthTextField.text = String(component.maxLength ?? 0)
tooltipTitleTextField.text = component.tooltipModel?.title tooltipTitleTextField.text = component.tooltipModel?.title
tooltipContentTextField.text = component.tooltipModel?.content tooltipContentTextField.text = component.tooltipModel?.content
} }