// // IconViewController.swift // VDSSample // // Created by Matt Bruce on 1/9/23. // import Foundation import UIKit import VDS import Combine class IconViewController: BaseViewController { lazy var colorPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: IconColor.allCases) }() lazy var categoryPickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: IconCategory.allCases.sorted{ $0.rawValue < $1.rawValue }) }() lazy var namePickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: []) }() lazy var sizePickerSelectorView = { PickerSelectorView(title: "", picker: self.picker, items: IconSize.allCases) }() var icon = Icon() override func viewDidLoad() { super.viewDidLoad() addContentTopView(view: .makeWrapper(for: icon)) setupForm() setupPicker() setupModel() } func setupForm(){ addFormRow(label: "Surface", view: surfacePickerSelectorView) addFormRow(label: "Size", view: sizePickerSelectorView) addFormRow(label: "Color", view: colorPickerSelectorView) addFormRow(label: "Category", view: categoryPickerSelectorView) addFormRow(label: "Name", view: namePickerSelectorView) } func setupModel() { let name = IconName.accessibility icon.color = .black icon.name = name //setup UI surfacePickerSelectorView.text = icon.surface.rawValue sizePickerSelectorView.text = icon.size.rawValue colorPickerSelectorView.text = icon.color.rawValue category = .accessibility namePickerSelectorView.text = name.rawValue } private var category: IconCategory = .accessibility { didSet { categoryPickerSelectorView.text = category.rawValue let icons = category.icons.sorted{ $0.rawValue < $1.rawValue } namePickerSelectorView.items = icons if let first = icons.first { namePickerSelectorView.text = first.rawValue icon.name = first } } } func setupPicker(){ surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.icon.surface = item self?.contentTopView.backgroundColor = item.color } categoryPickerSelectorView.onPickerDidSelect = { [weak self] item in self?.category = item } sizePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.icon.size = item } colorPickerSelectorView.onPickerDidSelect = { [weak self] item in self?.icon.color = item } namePickerSelectorView.onPickerDidSelect = { [weak self] item in self?.icon.name = item } } }