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
|
||||
|
||||
|
||||
//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
|
||||
//--------------------------------------------------
|
||||
public var isValid: Bool = true
|
||||
|
||||
/// 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.
|
||||
public var observeDropdownSelection: ((String) -> ())?
|
||||
public var observeDropdownSelection: ((_ newValue: String) -> ())?
|
||||
|
||||
/// When selecting for first responder, allow initial selected value to appear in empty text field.
|
||||
public var setInitialValueInTextField = true
|
||||
@ -184,7 +197,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public func updateView(_ size: CGFloat) { }
|
||||
|
||||
/// 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)
|
||||
viewModel.selectedIndex = pickerIndex
|
||||
selectId = pickerIndex
|
||||
observeDropdownChange?(selectedItem?.text, pickerData[pickerIndex])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ import VDS
|
||||
public var options: [String] = []
|
||||
public var selectedIndex: Int?
|
||||
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) {
|
||||
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
|
||||
//--------------------------------------------------
|
||||
@ -66,16 +73,6 @@ import VDS
|
||||
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
|
||||
//--------------------------------------------------
|
||||
@ -136,14 +133,18 @@ import VDS
|
||||
//properties
|
||||
isEnabled = viewModel.enabled && !viewModel.readOnly
|
||||
isAnimated = viewModel.animated
|
||||
isSelected = viewModel.selected
|
||||
|
||||
|
||||
//call super here to go around the didSet
|
||||
//in this class
|
||||
super.isSelected = viewModel.selected
|
||||
|
||||
//events
|
||||
viewModel.updateUI = {
|
||||
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
||||
guard let self = self else { return }
|
||||
let isValid = viewModel.isValid ?? true
|
||||
showError = !isValid
|
||||
//TODO: Fix issue with default state
|
||||
//showError = !isValid
|
||||
isEnabled = viewModel.enabled
|
||||
|
||||
})
|
||||
|
||||
@ -144,11 +144,6 @@ import VDS
|
||||
//--------------------------------------------------
|
||||
// MARK: - MoleculeViewProtocol
|
||||
//--------------------------------------------------
|
||||
|
||||
open func needsToBeConstrained() -> Bool { true }
|
||||
|
||||
public func horizontalAlignment() -> UIStackView.Alignment { .leading }
|
||||
|
||||
public func updateView(_ size: CGFloat) {}
|
||||
|
||||
}
|
||||
|
||||
@ -19,22 +19,14 @@ import VDS
|
||||
var fieldKey: String?
|
||||
var fieldValue: JSONValue?
|
||||
var groupName: String?
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Life Cycle
|
||||
//--------------------------------------------------
|
||||
|
||||
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)
|
||||
override open var isSelected: Bool {
|
||||
didSet {
|
||||
viewModel?.checkbox.selected = isSelected
|
||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------
|
||||
// MARK: - Atomic
|
||||
//--------------------------------------------------
|
||||
@ -73,14 +65,18 @@ import VDS
|
||||
//properties
|
||||
isAnimated = viewModel.checkbox.animated
|
||||
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
|
||||
viewModel.checkbox.updateUI = {
|
||||
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
|
||||
guard let self = self else { return }
|
||||
let isValid = viewModel.checkbox.isValid ?? true
|
||||
showError = !isValid
|
||||
//TODO: Fix issue with default state
|
||||
//showError = !isValid
|
||||
errorText = viewModel.checkbox.errorMessage
|
||||
isEnabled = viewModel.checkbox.enabled
|
||||
})
|
||||
|
||||
@ -38,5 +38,9 @@ extension VDSMoleculeViewProtocol {
|
||||
public func update(viewModel: ViewModel){
|
||||
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