refactored radio

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-12 15:52:10 -05:00
parent f2fc171914
commit fb9b871345

View File

@ -35,7 +35,20 @@ class RadioButtonViewController: UIViewController, StoryboardInitable {
override func viewDidLoad() {
super.viewDidLoad()
view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:))))
componentContainerView.addSubview(radioButtonGroup)
radioButtonGroup.leadingAnchor.constraint(equalTo: componentContainerView.leadingAnchor, constant: 10).isActive = true
radioButtonGroup.topAnchor.constraint(equalTo: componentContainerView.topAnchor, constant: 20).isActive = true
radioButtonGroup.bottomAnchor.constraint(equalTo: componentContainerView.bottomAnchor, constant: -20).isActive = true
radioButtonGroup.trailingAnchor.constraint(equalTo: componentContainerView.trailingAnchor, constant: 10).isActive = true
setupPicker()
createModel()
setupBinding()
}
func createModel(){
var model1 = DefaultRadioButtonModel()
model1.value = "model 1 Value"
model1.labelText = "Terms and conditions"
@ -51,20 +64,19 @@ class RadioButtonViewController: UIViewController, StoryboardInitable {
var model2 = DefaultRadioButtonModel()
model2.value = "model 2 Value"
model2.childText = "Radio Sample 2"
surfaceLabel.text = model1.surface.rawValue
disabledSwitch.isOn = model1.selected
labelTextField.text = model1.labelText
childTextField.text = model1.childText
showErrorSwitch.isOn = model1.hasError
model.selectors = [model1, model2]
//set UI values
surfaceLabel.text = model.surface.rawValue
disabledSwitch.isOn = model.disabled
showErrorSwitch.isOn = model.hasError
labelTextField.text = model1.labelText
childTextField.text = model1.childText
radioButtonGroup.set(with: model)
componentContainerView.addSubview(radioButtonGroup)
}
func setupBinding() {
//create the subject
let modelSubject = CurrentValueSubject<DefaultRadioButtonGroupModel, Never>(model)
@ -77,21 +89,13 @@ class RadioButtonViewController: UIViewController, StoryboardInitable {
//print out on subject changes
modelSubject.sink { [weak self] model in
self?.showErrorSwitch.isOn = model.hasError
self?.showErrorSwitch.isOn = model.hasError
print("RadioButtonViewController hasError: \(model.hasError)")
if let selectedModel = model.selectedModel {
print("RadioButtonViewController selectedModel Id: \(selectedModel.id)")
}
}.store(in: &subscribers)
radioButtonGroup.leadingAnchor.constraint(equalTo: componentContainerView.leadingAnchor, constant: 10).isActive = true
radioButtonGroup.topAnchor.constraint(equalTo: componentContainerView.topAnchor, constant: 20).isActive = true
radioButtonGroup.bottomAnchor.constraint(equalTo: componentContainerView.bottomAnchor, constant: -20).isActive = true
radioButtonGroup.trailingAnchor.constraint(equalTo: componentContainerView.trailingAnchor, constant: 10).isActive = true
view.addGestureRecognizer(UITapGestureRecognizer(target: self.view, action: #selector(UIView.endEditing(_:))))
setupPicker()
}