vds_ios_sample/VDSSample/ViewControllers/ListUnorderedViewController.swift
2024-10-18 19:56:34 +05:30

120 lines
4.3 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:"
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"
updateUnorderList()
self.component.unorderedList = self.unorderedList ?? []
}
}
extension ListUnorderedViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let component = Self.makeComponent()
return ComponentSample(component: component)
}
}