Merge branch 'hotfix/20_1-vds-update' into 'release/20_1_0'
ensure viewModel?. is used outside of the viewModelDidUpdate method ### Summary Crash from not using optional ? for the viewModels. Co-authored-by: Matt Bruce <matt.bruce@verizon.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1172
This commit is contained in:
commit
f437fbaea9
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 ?? "")
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user