116 lines
3.9 KiB
Swift
116 lines
3.9 KiB
Swift
//
|
|
// ListUnorderedViewController.swift
|
|
// VDSSample
|
|
//
|
|
// Created by Vasavi Kanamarlapudi on 16/10/24.
|
|
//
|
|
|
|
import Foundation
|
|
import VDS
|
|
|
|
class ListUnorderedViewController: BaseViewController<ListUnordered> {
|
|
|
|
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)
|
|
}
|
|
}
|