diff --git a/MVMCoreUI/Atomic/Atoms/Selectors/Checkbox.swift b/MVMCoreUI/Atomic/Atoms/Selectors/Checkbox.swift index 60d88693..572a075b 100644 --- a/MVMCoreUI/Atomic/Atoms/Selectors/Checkbox.swift +++ b/MVMCoreUI/Atomic/Atoms/Selectors/Checkbox.swift @@ -38,6 +38,13 @@ import VDS } } + override open var isSelected: Bool { + didSet { + viewModel?.selected = isSelected + _ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) + } + } + //-------------------------------------------------- // MARK: - Initializers //-------------------------------------------------- @@ -66,16 +73,6 @@ import VDS isSelected = isChecked } - open override func setup() { - super.setup() - publisher(for: .valueChanged) - .sink { [weak self] control in - guard let self, isEnabled else { return } - viewModel?.selected = isSelected - _ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) - }.store(in: &subscribers) - } - //-------------------------------------------------- // MARK: - Actions //-------------------------------------------------- @@ -136,8 +133,11 @@ import VDS //properties isEnabled = viewModel.enabled && !viewModel.readOnly isAnimated = viewModel.animated - isSelected = viewModel.selected - + + //call super here to go around the didSet + //in this class + super.isSelected = viewModel.selected + //events viewModel.updateUI = { MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in diff --git a/MVMCoreUI/Atomic/Atoms/Views/CheckboxLabel.swift b/MVMCoreUI/Atomic/Atoms/Views/CheckboxLabel.swift index c75ead98..32e88bf2 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/CheckboxLabel.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/CheckboxLabel.swift @@ -19,22 +19,14 @@ import VDS var fieldKey: String? var fieldValue: JSONValue? var groupName: String? - - //-------------------------------------------------- - // MARK: - Life Cycle - //-------------------------------------------------- - open override func setup() { - super.setup() - - publisher(for: .valueChanged) - .sink { [weak self] control in - guard let self, isEnabled else { return } - viewModel?.checkbox.selected = isSelected - _ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) - }.store(in: &subscribers) + override open var isSelected: Bool { + didSet { + viewModel?.checkbox.selected = isSelected + _ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) + } } - + //-------------------------------------------------- // MARK: - Atomic //-------------------------------------------------- @@ -73,8 +65,11 @@ import VDS //properties isAnimated = viewModel.checkbox.animated isEnabled = viewModel.checkbox.enabled && !viewModel.checkbox.readOnly - isSelected = viewModel.checkbox.selected + //call super here to go around the didSet + //in this class + super.isSelected = viewModel.checkbox.selected + //events viewModel.checkbox.updateUI = { MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in