added more areas for input
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
de0ca8ab86
commit
b069fff09f
@ -62,6 +62,14 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
$0.isHidden = true
|
$0.isHidden = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//inlineAction
|
||||||
|
var inlineActionTextField = TextField()
|
||||||
|
lazy var inlineActionSection = FormSection().with {
|
||||||
|
$0.title = "inlineAction Settings"
|
||||||
|
$0.addFormRow(label: "Action Text", view: inlineActionTextField)
|
||||||
|
$0.isHidden = true
|
||||||
|
}
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
addContentTopView(view: component)
|
addContentTopView(view: component)
|
||||||
@ -71,23 +79,36 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
|
|
||||||
override func setupForm(){
|
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 Placement", view: helperTextPlacementPickerSelectorView)
|
|
||||||
addFormRow(label: "Helper Text", view: helperTextField)
|
|
||||||
addFormRow(label: "Error", view: showErrorSwitch)
|
|
||||||
addFormRow(label: "Error Text", view: errorTextField)
|
|
||||||
addFormRow(label: "Success", view: showSuccessSwitch)
|
|
||||||
addFormRow(label: "Success Text", view: successTextField)
|
|
||||||
addFormRow(label: "Width", view: widthTextField)
|
|
||||||
addFormRow(label: "ToolTip Title", view: tooltipTitleTextField)
|
|
||||||
addFormRow(label: "ToolTip Content", view: tooltipContentTextField)
|
|
||||||
addFormRow(label: "Field Type", view: inputTypePickerSelectorView)
|
|
||||||
|
|
||||||
|
|
||||||
|
let fieldType = FormSection().with {
|
||||||
|
$0.title = "Field Type Settings"
|
||||||
|
$0.addFormRow(label: "Field Type", view: inputTypePickerSelectorView)
|
||||||
|
}
|
||||||
|
|
||||||
|
let general = FormSection().with {
|
||||||
|
$0.title = "\n\nGeneral Settings"
|
||||||
|
}
|
||||||
|
|
||||||
|
general.addFormRow(label: "Disabled", view: disabledSwitch)
|
||||||
|
general.addFormRow(label: "Required", view: requiredSwitch)
|
||||||
|
general.addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||||
|
general.addFormRow(label: "Label Text", view: labelTextField)
|
||||||
|
general.addFormRow(label: "Helper Text Placement", view: helperTextPlacementPickerSelectorView)
|
||||||
|
general.addFormRow(label: "Helper Text", view: helperTextField)
|
||||||
|
general.addFormRow(label: "Error", view: showErrorSwitch)
|
||||||
|
general.addFormRow(label: "Error Text", view: errorTextField)
|
||||||
|
general.addFormRow(label: "Success", view: showSuccessSwitch)
|
||||||
|
general.addFormRow(label: "Success Text", view: successTextField)
|
||||||
|
general.addFormRow(label: "Width", view: widthTextField)
|
||||||
|
general.addFormRow(label: "ToolTip Title", view: tooltipTitleTextField)
|
||||||
|
general.addFormRow(label: "ToolTip Content", view: tooltipContentTextField)
|
||||||
|
|
||||||
|
append(section: fieldType)
|
||||||
append(section: passwordSection)
|
append(section: passwordSection)
|
||||||
append(section: dateSection)
|
append(section: dateSection)
|
||||||
|
append(section: inlineActionSection)
|
||||||
|
append(section: general)
|
||||||
|
|
||||||
requiredSwitch.onChange = { [weak self] sender in
|
requiredSwitch.onChange = { [weak self] sender in
|
||||||
self?.component.isRequired = sender.isOn
|
self?.component.isRequired = sender.isOn
|
||||||
@ -162,6 +183,21 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
self?.component.showPasswordButtonText = text
|
self?.component.showPasswordButtonText = text
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
//inlineAction
|
||||||
|
inlineActionTextField
|
||||||
|
.textPublisher
|
||||||
|
.sink { [weak self] text in
|
||||||
|
if !text.isEmpty {
|
||||||
|
self?.component.actionTextLinkModel = .init(text: text, onClick: { inputField in
|
||||||
|
var value = inputField.value ?? ""
|
||||||
|
value = !value.isEmpty ? value : "nil"
|
||||||
|
self?.present(UIAlertController(title: "inlineAction", message: "Clicked and you get the value: \(value)", preferredStyle: .alert).with{ $0.addAction(.init(title: "OK", style: .default)) }, animated: true)
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
self?.component.actionTextLinkModel = nil
|
||||||
|
}
|
||||||
|
}.store(in: &subscribers)
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -171,7 +207,6 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
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.successText = "Good job entering a valid address!"
|
component.successText = "Good job entering a valid address!"
|
||||||
component.tooltipModel = .init(title: "Check the formatting of your address", content:"House/Building number then street name")
|
|
||||||
|
|
||||||
component.onChange = { component in
|
component.onChange = { component in
|
||||||
if let text = component.value {
|
if let text = component.value {
|
||||||
@ -184,6 +219,7 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
//setup UI
|
//setup UI
|
||||||
surfacePickerSelectorView.text = component.surface.rawValue
|
surfacePickerSelectorView.text = component.surface.rawValue
|
||||||
helperTextPlacementPickerSelectorView.text = component.helperTextPlacement.rawValue
|
helperTextPlacementPickerSelectorView.text = component.helperTextPlacement.rawValue
|
||||||
|
dateFormatPickerSelectorView.text = component.dateFormat.rawValue
|
||||||
inputTypePickerSelectorView.text = component.fieldType.rawValue
|
inputTypePickerSelectorView.text = component.fieldType.rawValue
|
||||||
disabledSwitch.isOn = !component.isEnabled
|
disabledSwitch.isOn = !component.isEnabled
|
||||||
requiredSwitch.isOn = component.isRequired
|
requiredSwitch.isOn = component.isRequired
|
||||||
@ -213,6 +249,7 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
|
|
||||||
inputTypePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
inputTypePickerSelectorView.onPickerDidSelect = { [weak self] item in
|
||||||
self?.component.fieldType = item
|
self?.component.fieldType = item
|
||||||
|
self?.component.text = ""
|
||||||
self?.updateFormSections()
|
self?.updateFormSections()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,7 +268,13 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateFormSections() {
|
func updateFormSections() {
|
||||||
[passwordSection, dateSection].forEach { $0.isHidden = true }
|
[passwordSection, dateSection, inlineActionSection].forEach { $0.isHidden = true }
|
||||||
|
//reset other fields
|
||||||
|
component.actionTextLinkModel = nil
|
||||||
|
component.tooltipModel = nil
|
||||||
|
tooltipTitleTextField.text = nil
|
||||||
|
tooltipContentTextField.text = nil
|
||||||
|
|
||||||
switch component.fieldType {
|
switch component.fieldType {
|
||||||
case .text:
|
case .text:
|
||||||
break
|
break
|
||||||
@ -240,7 +283,8 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
break
|
break
|
||||||
|
|
||||||
case .inlineAction:
|
case .inlineAction:
|
||||||
break
|
inlineActionTextField.text = nil
|
||||||
|
inlineActionSection.isHidden = false
|
||||||
|
|
||||||
case .password:
|
case .password:
|
||||||
passwordSection.isHidden = false
|
passwordSection.isHidden = false
|
||||||
@ -248,7 +292,7 @@ class InputFieldViewController: BaseViewController<InputField> {
|
|||||||
case .creditCard:
|
case .creditCard:
|
||||||
break
|
break
|
||||||
|
|
||||||
case .tel:
|
case .telephone:
|
||||||
break
|
break
|
||||||
|
|
||||||
case .date:
|
case .date:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user