added buttonSize

Signed-off-by: Jarrod Courtney <jarrod.courtney@gmail.com>
This commit is contained in:
Jarrod Courtney 2022-09-23 13:42:10 -05:00
parent 4a32b4df69
commit fba9567de7
2 changed files with 32 additions and 4 deletions

View File

@ -102,3 +102,10 @@ class UsePicker: PickerBase<Use> {
} }
} }
class ButtonSizePicker: PickerBase<Use.Size> {
init(){
super.init(items: [.large, .small])
}
}

View File

@ -13,10 +13,11 @@ import VDSColorTokens
class ButtonViewController: ModelScrollViewController<DefaultButtonModel> { class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
enum PickerType { enum PickerType {
case surface, use case surface, use, buttonSize
} }
var surfacePickerSelectorView = PickerSelectorView(title: "") var surfacePickerSelectorView = PickerSelectorView(title: "")
var usePickerSelectorView = PickerSelectorView(title: "") var usePickerSelectorView = PickerSelectorView(title: "")
var buttonSizePickerSelectorView = PickerSelectorView(title: "")
var disabledSwitch = UISwitch() var disabledSwitch = UISwitch()
var textField = TextField() var textField = TextField()
@ -26,8 +27,13 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
//addContentTopView(view: button) let view = UIView()
contentTopView.addSubview(button) view.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
button.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
button.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
button.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
addContentTopView(view: view)
setupForm() setupForm()
setupPicker() setupPicker()
@ -40,6 +46,7 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
addFormRow(label: "Disabled", view: disabledSwitch) addFormRow(label: "Disabled", view: disabledSwitch)
addFormRow(label: "Label", view: textField) addFormRow(label: "Label", view: textField)
addFormRow(label: "Width", view: widthTextField) addFormRow(label: "Width", view: widthTextField)
addFormRow(label: "Size", view: buttonSizePickerSelectorView)
disabledSwitch disabledSwitch
@ -73,6 +80,12 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
self?.button.buttonWidth = CGFloat(truncating: n) self?.button.buttonWidth = CGFloat(truncating: n)
} }
}.store(in: &subscribers) }.store(in: &subscribers)
buttonSizePickerSelectorView.button
.publisher(for: .touchUpInside)
.sink { [weak self] _ in
self?.pickerType = .buttonSize
}.store(in: &subscribers)
} }
@ -93,6 +106,7 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
textField.text = model.text textField.text = model.text
usePickerSelectorView.text = model.use.rawValue usePickerSelectorView.text = model.use.rawValue
widthTextField.text = "200" widthTextField.text = "200"
buttonSizePickerSelectorView.text = Use.Size.large.rawValue
} }
override func updateView(viewModel: DefaultButtonModel) { override func updateView(viewModel: DefaultButtonModel) {
@ -102,7 +116,7 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
//Picker //Picker
var surfacePicker = SurfacePicker() var surfacePicker = SurfacePicker()
var usePicker = UsePicker() var usePicker = UsePicker()
var buttonSizePicker = TextSizePicker() var buttonSizePicker = ButtonSizePicker()
var pickerType: PickerType = .surface { var pickerType: PickerType = .surface {
didSet { didSet {
@ -116,6 +130,8 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
update(object: surfacePicker) update(object: surfacePicker)
case .use: case .use:
update(object: usePicker) update(object: usePicker)
case .buttonSize:
update(object: buttonSizePicker)
} }
picker.reloadAllComponents() picker.reloadAllComponents()
picker.selectRow(0, inComponent: 0, animated: false) picker.selectRow(0, inComponent: 0, animated: false)
@ -135,5 +151,10 @@ class ButtonViewController: ModelScrollViewController<DefaultButtonModel> {
self?.button.backgroundColor = item.color self?.button.backgroundColor = item.color
self?.usePickerSelectorView.text = item.rawValue self?.usePickerSelectorView.text = item.rawValue
} }
buttonSizePicker.onPickerDidSelect = { [weak self] item in
self?.button.buttonSize = item
self?.buttonSizePickerSelectorView.text = item.rawValue
}
} }
} }