Merge branch 'release/20_1_0' into 'develop'

ensure viewModel?. is used outside of the viewModelDidUpdate method

### Summary
Hotfix

Co-authored-by: Hedden, Kyle Matthew <kyle.hedden@verizonwireless.com>
Co-authored-by: Matt Bruce <matt.bruce@verizon.com>

See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1173
This commit is contained in:
Pfeil, Scott Robert 2024-08-13 20:43:30 +00:00
commit efccb312e8
8 changed files with 22 additions and 19 deletions

View File

@ -110,7 +110,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
publisher(for: .valueChanged)
.sink { [weak self] control in
guard let self, let selectedItem else { return }
guard let self, let selectedItem, let viewModel else { return }
viewModel.selectedIndex = control.selectId
observeDropdownSelection?(selectedItem.text)
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
@ -130,7 +130,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
guard let self else { return }
isEditting = false
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
if let valid = viewModel.isValid {
if let viewModel, let valid = viewModel.isValid {
updateValidation(valid)
}
performDropdownAction()
@ -207,7 +207,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
if setInitialValueInTextField {
let pickerIndex = optionsPicker.selectedRow(inComponent: 0)
viewModel.selectedIndex = pickerIndex
viewModel?.selectedIndex = pickerIndex
selectId = pickerIndex
}
}

View File

@ -33,7 +33,7 @@ import VDS
private var isEditting: Bool = false {
didSet {
viewModel.selected = isEditting
viewModel?.selected = isEditting
}
}
@ -47,7 +47,7 @@ import VDS
open var validateWhenDoneEditing: Bool = true
open var shouldMaskWhileRecording: Bool {
return viewModel.shouldMaskRecordedView ?? false
return viewModel?.shouldMaskRecordedView ?? false
}
//--------------------------------------------------
// MARK: - Computed Properties
@ -99,7 +99,7 @@ import VDS
publisher(for: .valueChanged)
.sink { [weak self] control in
guard let self else { return }
guard let self, let viewModel else { return }
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
if (viewModel.type == .email) {
// remove spaces (either user entered Or auto-correct suggestion) for the email field
@ -112,7 +112,7 @@ import VDS
.sink { [weak self] textView in
guard let self else { return }
isEditting = true
if viewModel.clearTextOnTap {
if let viewModel, viewModel.clearTextOnTap {
text = ""
}
}.store(in: &subscribers)
@ -122,7 +122,7 @@ import VDS
.sink { [weak self] textView in
guard let self else { return }
isEditting = false
if validateWhenDoneEditing, let valid = viewModel.isValid {
if let viewModel, validateWhenDoneEditing, let valid = viewModel.isValid {
updateValidation(valid)
}
regexTextFieldOutputIfAvailable()

View File

@ -29,7 +29,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
private var isEditting: Bool = false {
didSet {
viewModel.selected = isEditting
viewModel?.selected = isEditting
}
}
@ -37,7 +37,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
// MARK: - Computed Properties
//--------------------------------------------------
open var shouldMaskWhileRecording: Bool {
return viewModel.shouldMaskRecordedView ?? false
return viewModel?.shouldMaskRecordedView ?? false
}
/// Placeholder access for the textView.
@ -91,7 +91,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
publisher(for: .valueChanged)
.sink { [weak self] control in
guard let self else { return }
guard let self, let viewModel else { return }
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
}.store(in: &subscribers)
@ -108,7 +108,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
.sink { [weak self] textView in
guard let self else { return }
isEditting = false
if let valid = viewModel.isValid {
if let viewModel, let valid = viewModel.isValid {
updateValidation(valid)
}

View File

@ -142,7 +142,7 @@ import VDS
viewModel.updateUI = {
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
guard let self = self else { return }
let isValid = viewModel.isValid ?? true
//let isValid = viewModel.isValid ?? true
//TODO: Fix issue with default state
//showError = !isValid
isEnabled = viewModel.enabled

View File

@ -74,7 +74,7 @@ import VDS
viewModel.checkbox.updateUI = {
MVMCoreDispatchUtility.performBlock(onMainThread: { [weak self] in
guard let self = self else { return }
let isValid = viewModel.checkbox.isValid ?? true
//let isValid = viewModel.checkbox.isValid ?? true
//TODO: Fix issue with default state
//showError = !isValid
errorText = viewModel.checkbox.errorMessage

View File

@ -16,13 +16,15 @@ public class FormLabel: Label {
//public properties
public override var isEnabled: Bool {
didSet{
self.formModel.enabled = isEnabled
guard let formModel else { return }
formModel.enabled = isEnabled
self.set(with: isRequired ? formModel.model : formModel.requiredModel, delegateObject, additionalData)
}
}
public var isRequired: Bool = true {
didSet{
guard let formModel else { return }
self.set(with: isRequired ? formModel.model : formModel.requiredModel, delegateObject, additionalData)
}
}
@ -50,6 +52,7 @@ public class FormLabel: Label {
/// Text change that will update both enabledModel and disabledModel text values
/// - Parameter text: text you want to see
public func set(text: String?){
self.formModel.set(text: text ?? "")
guard let formModel else { return }
formModel.set(text: text ?? "")
}
}

View File

@ -66,7 +66,7 @@ import VDS
}
open func setStyle(_ style: LineModel.Style) {
viewModel.type = style
viewModel?.type = style
update(viewModel: viewModel)
}
@ -85,7 +85,7 @@ import VDS
}
open override func draw(_ rect: CGRect) {
guard viewModel.type != .none else { return }
guard let viewModel, viewModel.type != .none else { return }
super.draw(rect)
}

View File

@ -30,7 +30,7 @@ import VDS
if let delegate {
onTabDidSelect = { [weak self] index in
guard let self else { return }
viewModel.selectedIndex = index
viewModel?.selectedIndex = index
delegate.didSelectItem(.init(row: index, section: 0), tabs: self)
}