refactored checkbox action to didSet

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-07-30 16:35:46 -05:00
parent 5a47b32789
commit ac23b0dc41

View File

@ -24,17 +24,13 @@ import VDS
var fieldKey: String? var fieldKey: String?
var fieldValue: JSONValue? var fieldValue: JSONValue?
var groupName: String? var groupName: String?
/// Disables all selection logic when setting the value of isSelected, reducing it to a stored property.
open var updateSelectionOnly: Bool = false
/// Action Block called when the switch is selected. /// Action Block called when the switch is selected.
open var actionBlock: ActionBlock? { open var actionBlock: ActionBlock? {
get { nil } didSet {
set { if let actionBlock {
if let action = newValue {
onChange = { _ in onChange = { _ in
action() actionBlock()
} }
} else { } else {
onChange = nil onChange = nil
@ -42,20 +38,6 @@ import VDS
} }
} }
/**
The represented state of the Checkbox.
Setting updateSelectionOnly to true bypasses the animation logic inherent with setting this property.
*/
override open var isSelected: Bool {
didSet {
if !updateSelectionOnly {
viewModel.selected = isSelected
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}
}
}
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Initializers // MARK: - Initializers
//-------------------------------------------------- //--------------------------------------------------
@ -92,6 +74,12 @@ import VDS
open func toggleAndAction() { open func toggleAndAction() {
toggle() toggle()
} }
open override func toggle() {
super.toggle()
viewModel.selected = isSelected
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Methods // MARK: - Methods
@ -144,11 +132,7 @@ import VDS
//properties //properties
isEnabled = viewModel.enabled && !viewModel.readOnly isEnabled = viewModel.enabled && !viewModel.readOnly
isAnimated = viewModel.animated isAnimated = viewModel.animated
if viewModel.selected { isSelected = viewModel.selected
updateSelectionOnly = true
isSelected = viewModel.selected
updateSelectionOnly = false
}
//events //events
viewModel.updateUI = { viewModel.updateUI = {