vds_ios_sample/VDSSample/ViewControllers/TileletGroupViewController.swift
Matt Bruce e484d95d81 added device ipad
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2024-10-17 16:14:28 -05:00

139 lines
4.1 KiB
Swift

//
// TileletGroupViewController.swift
// VDSSample
//
// Created by Matt Bruce on 10/8/24.
//
import Foundation
import UIKit
import VDS
import VDSCoreTokens
class TileletGroupViewController: BaseViewController<TileletGroup> {
var collectionView: UICollectionView!
public enum RowQuantity: String, CaseIterable {
case one, two, three
case four, five, six
init(quantity: Int){
if quantity == 1 {
self = .one
} else if quantity == 2 {
self = .two
} else if quantity == 3 {
self = .three
} else if quantity == 4 {
self = .four
} else if quantity == 5 {
self = .five
} else if quantity == 6 {
self = .six
} else {
self = UIDevice.isIPad ? .six : .three
}
}
var intValue: Int {
switch self {
case .one:
return 1
case .two:
return 2
case .three:
return 3
case .four:
return 4
case .five:
return 5
case .six:
return 6
}
}
public static var allCases: [TileletGroupViewController.RowQuantity] {
UIDevice.isIPad ? Self.allCases : [.one, .two, .three]
}
}
lazy var rowQuantitySelectorView = {
PickerSelectorView<RowQuantity>(title: "",
picker: self.picker,
items: RowQuantity.allCases)
}()
lazy var paddingSelectorView = {
PickerSelectorView<TileletGroup.Padding>(title: "",
picker: self.picker,
items: TileletGroup.Padding.allCases)
}()
var disabledSwitch = Toggle()
override func viewDidLoad() {
super.viewDidLoad()
resetTilets()
addContentTopView(view: component)
setupPicker()
setupModel()
debugViewSwitch.onChange = { [weak self] sender in
self?.component.debugBorder(show: sender.isOn, color: .blue)
}
}
func resetTilets() {
component.tilelets = [
makeTilelet(badge: "Here's the badge", title: "Title goes here"),
makeTilelet(title: "Title goes here"),
makeTilelet(subTitle: "Here's the subTitle"),
makeTilelet(eyebrow: "Here's the eyebrow", subTitle: "Here's the subTitle")
]
}
override func setupForm(){
super.setupForm()
addActionRow()
addFormRow(label: "Surface", view: surfacePickerSelectorView)
addFormRow(label: "Disabled", view: disabledSwitch, pinTrailing: false)
if UIDevice.isIPad {
addFormRow(label: "Padding", view: paddingSelectorView)
}
addFormRow(label: "Row Quantity", view: rowQuantitySelectorView)
disabledSwitch.onChange = { [weak self] sender in
self?.component.isEnabled = !sender.isOn
}
}
func setupModel() {
//setup UI
surfacePickerSelectorView.text = component.surface.rawValue
disabledSwitch.isOn = !component.isEnabled
rowQuantitySelectorView.text = RowQuantity(quantity: component.rowQuantity).rawValue
}
func setupPicker(){
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.component.surface = item
self?.contentTopView.backgroundColor = item.color
}
paddingSelectorView.onPickerDidSelect = { [weak self] item in
self?.component.padding = item
}
rowQuantitySelectorView.onPickerDidSelect = { [weak self] item in
if UIDevice.isIPad {
self?.component.rowQuantityTablet = item.intValue
} else {
self?.component.rowQuantityPhone = item.intValue
}
self?.resetTilets()
}
}
}