Merge branch 'bugfix/vds-update' into 'develop'
Merge of release/20_1 and bugfix ### Summary VDS Bugfix for new Generics plus all of the release/20_1 code that hasn't been merged down into develop. Co-authored-by: Matt Bruce <matt.bruce@verizon.com> Co-authored-by: Pfeil, Scott Robert <scott.pfeil3@verizonwireless.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1170
This commit is contained in:
commit
236a1969e9
@ -29,17 +29,30 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var isEditting: Bool = false
|
private var isEditting: Bool = false
|
||||||
|
|
||||||
|
//override for to deal with getting the
|
||||||
|
//old selectedItem to pass down to the observeDropdownChange
|
||||||
|
open override var selectId: Int? {
|
||||||
|
didSet {
|
||||||
|
guard let observeDropdownChange, let selectedItem else { return }
|
||||||
|
var oldSelectedItem: DropdownOptionModel?
|
||||||
|
if let oldValue {
|
||||||
|
oldSelectedItem = options[oldValue]
|
||||||
|
}
|
||||||
|
observeDropdownChange(oldSelectedItem?.text, selectedItem.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
public var isValid: Bool = true
|
public var isValid: Bool = true
|
||||||
|
|
||||||
/// Closure passed here will run as picker changes items.
|
/// Closure passed here will run as picker changes items.
|
||||||
public var observeDropdownChange: ((String?, String) -> ())?
|
public var observeDropdownChange: ((_ oldValue: String?, _ newValue: String) -> ())?
|
||||||
|
|
||||||
/// Closure passed here will run upon dismissing the selection picker.
|
/// Closure passed here will run upon dismissing the selection picker.
|
||||||
public var observeDropdownSelection: ((String) -> ())?
|
public var observeDropdownSelection: ((_ newValue: String) -> ())?
|
||||||
|
|
||||||
/// When selecting for first responder, allow initial selected value to appear in empty text field.
|
/// When selecting for first responder, allow initial selected value to appear in empty text field.
|
||||||
public var setInitialValueInTextField = true
|
public var setInitialValueInTextField = true
|
||||||
@ -184,7 +197,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public func updateView(_ size: CGFloat) { }
|
public func updateView(_ size: CGFloat) { }
|
||||||
|
|
||||||
/// Sets the textField with the first value of the available picker data.
|
/// Sets the textField with the first value of the available picker data.
|
||||||
@ -196,7 +209,6 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
|||||||
let pickerIndex = optionsPicker.selectedRow(inComponent: 0)
|
let pickerIndex = optionsPicker.selectedRow(inComponent: 0)
|
||||||
viewModel.selectedIndex = pickerIndex
|
viewModel.selectedIndex = pickerIndex
|
||||||
selectId = pickerIndex
|
selectId = pickerIndex
|
||||||
observeDropdownChange?(selectedItem?.text, pickerData[pickerIndex])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import VDS
|
|||||||
public var options: [String] = []
|
public var options: [String] = []
|
||||||
public var selectedIndex: Int?
|
public var selectedIndex: Int?
|
||||||
public var showInlineLabel: Bool = false
|
public var showInlineLabel: Bool = false
|
||||||
public var feedbackTextPlacement: VDS.EntryFieldBase.HelperTextPlacement = .bottom
|
public var feedbackTextPlacement: VDS.DropdownSelect.HelperTextPlacement = .bottom
|
||||||
|
|
||||||
public init(with options: [String], selectedIndex: Int? = nil) {
|
public init(with options: [String], selectedIndex: Int? = nil) {
|
||||||
self.options = options
|
self.options = options
|
||||||
|
|||||||
@ -38,6 +38,13 @@ import VDS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override open var isSelected: Bool {
|
||||||
|
didSet {
|
||||||
|
viewModel?.selected = isSelected
|
||||||
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Initializers
|
// MARK: - Initializers
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -66,16 +73,6 @@ 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
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -136,14 +133,18 @@ import VDS
|
|||||||
//properties
|
//properties
|
||||||
isEnabled = viewModel.enabled && !viewModel.readOnly
|
isEnabled = viewModel.enabled && !viewModel.readOnly
|
||||||
isAnimated = viewModel.animated
|
isAnimated = viewModel.animated
|
||||||
isSelected = viewModel.selected
|
|
||||||
|
//call super here to go around the didSet
|
||||||
|
//in this class
|
||||||
|
super.isSelected = viewModel.selected
|
||||||
|
|
||||||
//events
|
//events
|
||||||
viewModel.updateUI = {
|
viewModel.updateUI = {
|
||||||
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
let isValid = viewModel.isValid ?? true
|
let isValid = viewModel.isValid ?? true
|
||||||
showError = !isValid
|
//TODO: Fix issue with default state
|
||||||
|
//showError = !isValid
|
||||||
isEnabled = viewModel.enabled
|
isEnabled = viewModel.enabled
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -144,11 +144,6 @@ import VDS
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - MoleculeViewProtocol
|
// MARK: - MoleculeViewProtocol
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
open func needsToBeConstrained() -> Bool { true }
|
|
||||||
|
|
||||||
public func horizontalAlignment() -> UIStackView.Alignment { .leading }
|
|
||||||
|
|
||||||
public func updateView(_ size: CGFloat) {}
|
public func updateView(_ size: CGFloat) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,22 +19,14 @@ import VDS
|
|||||||
var fieldKey: String?
|
var fieldKey: String?
|
||||||
var fieldValue: JSONValue?
|
var fieldValue: JSONValue?
|
||||||
var groupName: String?
|
var groupName: String?
|
||||||
|
|
||||||
//--------------------------------------------------
|
|
||||||
// MARK: - Life Cycle
|
|
||||||
//--------------------------------------------------
|
|
||||||
|
|
||||||
open override func setup() {
|
override open var isSelected: Bool {
|
||||||
super.setup()
|
didSet {
|
||||||
|
viewModel?.checkbox.selected = isSelected
|
||||||
publisher(for: .valueChanged)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
.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,14 +65,18 @@ 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
|
||||||
isSelected = viewModel.checkbox.selected
|
|
||||||
|
|
||||||
|
//call super here to go around the didSet
|
||||||
|
//in this class
|
||||||
|
super.isSelected = viewModel.checkbox.selected
|
||||||
|
|
||||||
//events
|
//events
|
||||||
viewModel.checkbox.updateUI = {
|
viewModel.checkbox.updateUI = {
|
||||||
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
||||||
guard let self = self else { return }
|
guard let self = self else { return }
|
||||||
let isValid = viewModel.checkbox.isValid ?? true
|
let isValid = viewModel.checkbox.isValid ?? true
|
||||||
showError = !isValid
|
//TODO: Fix issue with default state
|
||||||
|
//showError = !isValid
|
||||||
errorText = viewModel.checkbox.errorMessage
|
errorText = viewModel.checkbox.errorMessage
|
||||||
isEnabled = viewModel.checkbox.enabled
|
isEnabled = viewModel.checkbox.enabled
|
||||||
})
|
})
|
||||||
|
|||||||
@ -38,5 +38,9 @@ extension VDSMoleculeViewProtocol {
|
|||||||
public func update(viewModel: ViewModel){
|
public func update(viewModel: ViewModel){
|
||||||
set(with: viewModel, delegateObject, additionalData)
|
set(with: viewModel, delegateObject, additionalData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func updateView(_ size: CGFloat) { }
|
||||||
|
|
||||||
|
public static func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { 44 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user