moved formvalidation to publisher

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-07-30 17:02:09 -05:00
parent 998ad97372
commit 57bec1ecec
3 changed files with 36 additions and 29 deletions

View File

@ -66,6 +66,16 @@ import VDS
isSelected = isChecked 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 // MARK: - Actions
//-------------------------------------------------- //--------------------------------------------------
@ -75,14 +85,6 @@ import VDS
toggle() toggle()
} }
open override func toggle() {
super.toggle()
guard isEnabled else { return }
viewModel.selected = isSelected
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Methods // MARK: - Methods
//-------------------------------------------------- //--------------------------------------------------

View File

@ -26,15 +26,6 @@ import VDS
open var fieldValue: JSONValue? open var fieldValue: JSONValue?
open var groupName: String? open var groupName: String?
open override var isSelected: Bool {
didSet {
viewModel.state = isSelected
if oldValue != isSelected {
sendActions(for: .valueChanged)
}
}
}
lazy public var radioGroupName: String? = { viewModel.fieldKey }() lazy public var radioGroupName: String? = { viewModel.fieldKey }()
lazy public var radioButtonSelectionHelper: RadioButtonSelectionHelper? = { lazy public var radioButtonSelectionHelper: RadioButtonSelectionHelper? = {
@ -86,7 +77,17 @@ import VDS
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Lifecycle // MARK: - Lifecycle
//-------------------------------------------------- //--------------------------------------------------
public func viewModelDidUpdate() { open override func setup() {
super.setup()
publisher(for: .valueChanged)
.sink { [weak self] control in
guard let self, isEnabled else { return }
viewModel?.state = isSelected
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}.store(in: &subscribers)
}
open func viewModelDidUpdate() {
//events //events
viewModel.updateUI = { viewModel.updateUI = {
@ -119,7 +120,7 @@ import VDS
if let radioButtonSelectionHelper { if let radioButtonSelectionHelper {
radioButtonSelectionHelper.selected(self) radioButtonSelectionHelper.selected(self)
} else { } else {
isSelected = !isSelected isSelected.toggle()
} }
if let actionModel = viewModel.action, isSelected, !wasPreviouslySelected { if let actionModel = viewModel.action, isSelected, !wasPreviouslySelected {
@ -127,7 +128,7 @@ import VDS
try await Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: viewModel) try await Button.performButtonAction(with: actionModel, button: self, delegateObject: delegateObject, additionalData: additionalData, sourceModel: viewModel)
} }
} }
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) sendActions(for: .valueChanged)
setNeedsUpdate() setNeedsUpdate()
} }

View File

@ -23,14 +23,16 @@ import VDS
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Life Cycle // MARK: - Life Cycle
//-------------------------------------------------- //--------------------------------------------------
@objc open func updateView(_ size: CGFloat) {}
open override func toggle() { open override func setup() {
super.toggle() super.setup()
guard isEnabled else { return } publisher(for: .valueChanged)
viewModel.checkbox.selected = isSelected .sink { [weak self] control in
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate) guard let self, isEnabled else { return }
viewModel?.checkbox.selected = isSelected
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}.store(in: &subscribers)
} }
//-------------------------------------------------- //--------------------------------------------------
@ -100,6 +102,8 @@ import VDS
} }
@objc open func updateView(_ size: CGFloat) {}
open class func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { open class func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {
return 200 return 200
} }