Digital ACT-191 ONEAPP-11355 story: code refactored and updating test data when text fields edits

This commit is contained in:
Vasavi Kanamarlapudi 2024-10-19 14:39:15 +05:30
parent fd47fde62e
commit e27b421311

View File

@ -9,29 +9,27 @@ import Foundation
import VDS
class ListUnorderedViewController: BaseViewController<ListUnordered> {
lazy var sizePickerView = {
PickerSelectorView(title: "Large",
picker: self.picker,
picker: self.picker,
items: ListUnordered.Size.allCases)
}()
lazy var spacingPickerView = {
PickerSelectorView(title:"standard",
picker: self.picker,
PickerSelectorView(title:"Standard",
picker: self.picker,
items: ListUnordered.Spacing.allCases)
}()
var leadInTextField = TextField()
// var listItemOneTextField = TextField()
var listItemTwoLevelTwoTextOne = TextField()
var listItemTwoLevelTwoTextTwo = TextField()
var itemLevelTwoTextOne = TextField()
var itemLevelTwoTextTwo = TextField()
var unorderedList: [ListUnordered.ListUnorderedItemModel]?
override func viewDidLoad() {
super.viewDidLoad()
// addContentTopView(view: .makeWrapper(for: component, edgeSpacing: 16.0), edgeSpacing: 0.0)
addContentTopView(view: component)
setupPicker()
setupModel()
@ -49,39 +47,33 @@ class ListUnorderedViewController: BaseViewController<ListUnordered> {
let form2 = FormSection()
form2.title = "List Item Level 2 (Optional)"
form2.addFormRow(label: "Level 2 Text 1", view: listItemTwoLevelTwoTextOne)
form2.addFormRow(label: "Level 2 Text 2", view: listItemTwoLevelTwoTextTwo)
form2.addFormRow(label: "Subtext 1", view: itemLevelTwoTextOne)
form2.addFormRow(label: "Subtext 2", view: itemLevelTwoTextTwo)
append(section: form1)
append(section: form2)
leadInTextField
.textPublisher
.sink { [weak self] text in
self?.component.leadInText = text
}.store(in: &subscribers)
listItemTwoLevelTwoTextOne
itemLevelTwoTextOne
.textPublisher
.sink { [weak self] text in
guard let self else { return }
self.updateUnorderList()
self.component.unorderedList = unorderedList ?? []
}.store(in: &subscribers)
itemLevelTwoTextTwo
.textPublisher
.sink { [weak self] text in
guard let self else { return }
self.updateUnorderList()
self.component.unorderedList = unorderedList ?? []
}.store(in: &subscribers)
}
func updateUnorderList() {
if (listItemTwoLevelTwoTextOne.text == nil && listItemTwoLevelTwoTextTwo.text == nil) {
unorderedList = [
.init(itemLevelOneText: "Call 800-435-7986 to have your PIN reset"),
.init(itemLevelOneText: "To bypass Call Intercept")
]
} else {
unorderedList = [
.init(itemLevelOneText: "Call 800-435-7986 to have your PIN reset"),
.init(itemLevelOneText: "To bypass Call Intercept", itemLevelTwoTexts: [listItemTwoLevelTwoTextOne.text ?? "", listItemTwoLevelTwoTextTwo.text ?? ""])
]
}
}
func setupPicker() {
@ -103,12 +95,39 @@ class ListUnorderedViewController: BaseViewController<ListUnordered> {
sizePickerView.text = component.size.rawValue
spacingPickerView.text = component.spacing.rawValue
leadInTextField.text = "To manage your existing Call Intercept calling feature:"
self.component.leadInText = "To manage your existing Call Intercept calling feature:"
listItemTwoLevelTwoTextOne.text = "Priority callers can bypass Call Intercept by entering your 4 digit Call Intercept Override Code."
listItemTwoLevelTwoTextTwo.text = "Your phone will alert you with a short-short-long ring and \"Priority Caller\" will appear on your display"
self.component.leadInText = leadInTextField.text
itemLevelTwoTextOne.text = "Priority callers can bypass Call Intercept by entering your 4 digit Call Intercept Override Code."
itemLevelTwoTextTwo.text = "Your phone will alert you with a short-short-long ring and \"Priority Caller\" will appear on your display."
updateUnorderList()
self.component.unorderedList = self.unorderedList ?? []
}
// Update test data
func updateUnorderList() {
if (itemLevelTwoTextOne.text?.isEmpty == true) {
itemLevelTwoTextOne.text = nil
}
if (itemLevelTwoTextTwo.text?.isEmpty == true) {
itemLevelTwoTextTwo.text = nil
}
var levelTwoSubTexts : [String?]? = nil
if let subtextOneEmpty = itemLevelTwoTextOne.text?.isEmpty, let subtextTwoEmpty = itemLevelTwoTextTwo.text?.isEmpty {
if !subtextOneEmpty && !subtextTwoEmpty {
levelTwoSubTexts = [itemLevelTwoTextOne.text, itemLevelTwoTextTwo.text]
} else if !subtextOneEmpty || !subtextTwoEmpty {
if subtextOneEmpty {
levelTwoSubTexts = [itemLevelTwoTextTwo.text]
} else if subtextTwoEmpty {
levelTwoSubTexts = [itemLevelTwoTextOne.text]
}
}
unorderedList = [
.init(itemLevelOneText: "Call 800-435-7986 to have your PIN reset."),
.init(itemLevelOneText: "To bypass Call Intercept",
itemLevelTwoTexts: levelTwoSubTexts)
]
}
}
}
extension ListUnorderedViewController: ComponentSampleable {