refactored checkbox action to didSet
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
5a47b32789
commit
ac23b0dc41
@ -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 = {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user