implement with CurrentValueSubject
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
07bd0a538f
commit
46f857e4a8
@ -11,11 +11,10 @@ import VDS
|
||||
import VDSColorTokens
|
||||
import Combine
|
||||
|
||||
class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
deinit {
|
||||
print("\(Self.self) deinit")
|
||||
}
|
||||
|
||||
|
||||
|
||||
class CheckboxViewController: ModelViewController<DefaultCheckboxModel>, StoryboardInitable {
|
||||
|
||||
enum PickerType {
|
||||
case surface
|
||||
}
|
||||
@ -31,10 +30,8 @@ class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
@IBOutlet weak var childTextField: UITextField!
|
||||
@IBOutlet weak var showErrorSwitch: UISwitch!
|
||||
@IBOutlet weak var errorTextField: UITextField!
|
||||
|
||||
var model = DefaultCheckboxModel()
|
||||
|
||||
var checkbox = Checkbox()
|
||||
var subscribers = Set<AnyCancellable>()
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@ -50,6 +47,7 @@ class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
}
|
||||
|
||||
func createModel() {
|
||||
var model = DefaultCheckboxModel()
|
||||
model.labelText = "Terms and conditions"
|
||||
model.childText = "I agree to Verizon's terms and conditions click here"
|
||||
model.childTextAttributes = [
|
||||
@ -74,25 +72,22 @@ class CheckboxViewController: UIViewController, StoryboardInitable {
|
||||
}
|
||||
|
||||
func setupBinding() {
|
||||
//create the subject
|
||||
let modelSubject = CurrentValueSubject<DefaultCheckboxModel, Never>(model)
|
||||
|
||||
//bind
|
||||
checkbox.createBinding(with: modelSubject, storeIn: &subscribers)
|
||||
|
||||
//update the model
|
||||
checkbox.createBinding(with: model, storeIn: &subscribers)
|
||||
|
||||
//print out on subject changes
|
||||
modelSubject
|
||||
model
|
||||
.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main)
|
||||
.sink { [weak self] updatedModel in
|
||||
self?.model = updatedModel
|
||||
self?.showErrorSwitch.isOn = updatedModel.hasError
|
||||
print("CheckboxViewController local hasError: \(self?.model.value.hasError)")
|
||||
print("CheckboxViewController hasError: \(updatedModel.hasError)")
|
||||
print("CheckboxViewController local selected: \(self?.model.value.selected)")
|
||||
print("CheckboxViewController selected: \(updatedModel.selected)")
|
||||
}.store(in: &subscribers)
|
||||
}
|
||||
.store(in: &subscribers)
|
||||
}
|
||||
|
||||
|
||||
@IBAction func disabledChanged(_ sender: UISwitch) {
|
||||
checkbox.disabled = sender.isOn
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user