Merge branch 'bugfix/atomic-vds-selectorUpdate' into 'develop'
Updated Merged Selectors ### Summary updated selectors for similar logic in valuechanged event ### JIRA Ticket https://onejira.verizon.com/browse/ONEAPP-7001 Co-authored-by: Matt Bruce <matt.bruce@verizon.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1159
This commit is contained in:
commit
d69722c431
@ -65,7 +65,17 @@ import VDS
|
|||||||
self.init(frame: .zero)
|
self.init(frame: .zero)
|
||||||
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,12 +85,6 @@ import VDS
|
|||||||
toggle()
|
toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
open override func toggle() {
|
|
||||||
super.toggle()
|
|
||||||
viewModel.selected = isSelected
|
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Methods
|
// MARK: - Methods
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -30,26 +30,7 @@ open class RadioBoxes: VDS.RadioBoxGroup, VDSMoleculeViewProtocol {
|
|||||||
/// The models for the molecules.
|
/// The models for the molecules.
|
||||||
public var boxes: [RadioBoxModel]?
|
public var boxes: [RadioBoxModel]?
|
||||||
public weak var radioDelegate: RadioBoxSelectionDelegate?
|
public weak var radioDelegate: RadioBoxSelectionDelegate?
|
||||||
|
|
||||||
// TODO: this matches the current accessibility however not what was passed by Barbara's team.
|
|
||||||
// open override var items: [RadioBoxItem] {
|
|
||||||
// didSet {
|
|
||||||
// let total = items.count
|
|
||||||
// for (index, radioBoxItem) in items.enumerated() {
|
|
||||||
// radioBoxItem.selectorView.bridge_accessibilityValueBlock = {
|
|
||||||
// guard let format = MVMCoreUIUtility.hardcodedString(withKey: "index_string_of_total"),
|
|
||||||
// let indexString = MVMCoreUIUtility.getOrdinalString(forIndex: NSNumber(value: index + 1)) else { return ""}
|
|
||||||
// return String(format: format, indexString, total)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
open override func setup() {
|
|
||||||
super.setup()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: - MoleculeViewProtocol
|
// MARK: - MoleculeViewProtocol
|
||||||
public func viewModelDidUpdate() {
|
public func viewModelDidUpdate() {
|
||||||
boxes = viewModel.boxes
|
boxes = viewModel.boxes
|
||||||
@ -66,7 +47,7 @@ open class RadioBoxes: VDS.RadioBoxGroup, VDSMoleculeViewProtocol {
|
|||||||
|
|
||||||
// since the boxes has the state being tracked, we need to update the values here.
|
// since the boxes has the state being tracked, we need to update the values here.
|
||||||
if let index = items.firstIndex(where: {$0 === selectedControl}), let selectedBox = boxes?[index] {
|
if let index = items.firstIndex(where: {$0 === selectedControl}), let selectedBox = boxes?[index] {
|
||||||
boxes?.forEach {$0.selected = false }
|
boxes?.forEach { $0.selected = false }
|
||||||
selectedBox.selected = true
|
selectedBox.selected = true
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
radioDelegate?.selected(radioBox: selectedBox)
|
radioDelegate?.selected(radioBox: selectedBox)
|
||||||
|
|||||||
@ -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? = {
|
||||||
@ -85,8 +76,18 @@ 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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,21 +20,21 @@ import VDS
|
|||||||
var fieldValue: JSONValue?
|
var fieldValue: JSONValue?
|
||||||
var groupName: String?
|
var groupName: String?
|
||||||
|
|
||||||
private var updateSelectionOnly: Bool = false
|
|
||||||
override open var isSelected: Bool {
|
|
||||||
didSet {
|
|
||||||
if !updateSelectionOnly {
|
|
||||||
viewModel.checkbox.selected = isSelected
|
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Life Cycle
|
// MARK: - Life Cycle
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@objc open func updateView(_ size: CGFloat) {}
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Atomic
|
// MARK: - Atomic
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -73,11 +73,7 @@ import VDS
|
|||||||
//properties
|
//properties
|
||||||
isAnimated = viewModel.checkbox.animated
|
isAnimated = viewModel.checkbox.animated
|
||||||
isEnabled = viewModel.checkbox.enabled && !viewModel.checkbox.readOnly
|
isEnabled = viewModel.checkbox.enabled && !viewModel.checkbox.readOnly
|
||||||
if viewModel.checkbox.selected {
|
isSelected = viewModel.checkbox.selected
|
||||||
updateSelectionOnly = false
|
|
||||||
isSelected = viewModel.checkbox.selected
|
|
||||||
updateSelectionOnly = true
|
|
||||||
}
|
|
||||||
|
|
||||||
//events
|
//events
|
||||||
viewModel.checkbox.updateUI = {
|
viewModel.checkbox.updateUI = {
|
||||||
@ -106,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
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user