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

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