// // ListUnorderedViewController.swift // VDSSample // // Created by Vasavi Kanamarlapudi on 16/10/24. // import Foundation import VDS class ListUnorderedViewController: BaseViewController { lazy var sizePickerView = { PickerSelectorView(title: "Large", picker: self.picker, items: ListUnordered.Size.allCases) }() lazy var spacingPickerView = { PickerSelectorView(title:"standard", picker: self.picker, items: ListUnordered.Spacing.allCases) }() var leadInTextField = TextField() // var listItemOneTextField = TextField() var listItemTwoLevelTwoTextOne = TextField() var listItemTwoLevelTwoTextTwo = 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() } override func setupForm() { super.setupForm() addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Size", view: sizePickerView) addFormRow(label: "Spacing", view: spacingPickerView) let form1 = FormSection() form1.title = "Lead-In Text (optional)" form1.addFormRow(label: "Lead In Text", view: leadInTextField) 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) append(section: form1) append(section: form2) leadInTextField .textPublisher .sink { [weak self] text in self?.component.leadInText = text }.store(in: &subscribers) listItemTwoLevelTwoTextOne .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() { surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.component.surface = item self?.contentTopView.backgroundColor = item.color } sizePickerView.onPickerDidSelect = { [weak self] item in self?.component.size = item } spacingPickerView.onPickerDidSelect = { [weak self] item in self?.component.spacing = item } } func setupModel() { 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:" } } extension ListUnorderedViewController: ComponentSampleable { static func makeSample() -> ComponentSample { let component = Self.makeComponent() return ComponentSample(component: component) } }