From e27b42131124deabc2e80282ae49ab1c7ef339fc Mon Sep 17 00:00:00 2001 From: Vasavi Kanamarlapudi Date: Sat, 19 Oct 2024 14:39:15 +0530 Subject: [PATCH] Digital ACT-191 ONEAPP-11355 story: code refactored and updating test data when text fields edits --- .../ListUnorderedViewController.swift | 83 ++++++++++++------- 1 file changed, 51 insertions(+), 32 deletions(-) diff --git a/VDSSample/ViewControllers/ListUnorderedViewController.swift b/VDSSample/ViewControllers/ListUnorderedViewController.swift index 9c4b0dc..d078fca 100644 --- a/VDSSample/ViewControllers/ListUnorderedViewController.swift +++ b/VDSSample/ViewControllers/ListUnorderedViewController.swift @@ -9,29 +9,27 @@ import Foundation import VDS class ListUnorderedViewController: BaseViewController { - + 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 { 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 { 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 {