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)
|
publisher(for: .valueChanged)
|
||||||
.sink { [weak self] control in
|
.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
|
viewModel.selectedIndex = control.selectId
|
||||||
observeDropdownSelection?(selectedItem.text)
|
observeDropdownSelection?(selectedItem.text)
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
@ -130,7 +130,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
|||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
isEditting = false
|
isEditting = false
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
if let valid = viewModel.isValid {
|
if let viewModel, let valid = viewModel.isValid {
|
||||||
updateValidation(valid)
|
updateValidation(valid)
|
||||||
}
|
}
|
||||||
performDropdownAction()
|
performDropdownAction()
|
||||||
@ -207,7 +207,7 @@ open class ItemDropdownEntryField: VDS.DropdownSelect, VDSMoleculeViewProtocol,
|
|||||||
|
|
||||||
if setInitialValueInTextField {
|
if setInitialValueInTextField {
|
||||||
let pickerIndex = optionsPicker.selectedRow(inComponent: 0)
|
let pickerIndex = optionsPicker.selectedRow(inComponent: 0)
|
||||||
viewModel.selectedIndex = pickerIndex
|
viewModel?.selectedIndex = pickerIndex
|
||||||
selectId = pickerIndex
|
selectId = pickerIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@ import VDS
|
|||||||
|
|
||||||
private var isEditting: Bool = false {
|
private var isEditting: Bool = false {
|
||||||
didSet {
|
didSet {
|
||||||
viewModel.selected = isEditting
|
viewModel?.selected = isEditting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ import VDS
|
|||||||
open var validateWhenDoneEditing: Bool = true
|
open var validateWhenDoneEditing: Bool = true
|
||||||
|
|
||||||
open var shouldMaskWhileRecording: Bool {
|
open var shouldMaskWhileRecording: Bool {
|
||||||
return viewModel.shouldMaskRecordedView ?? false
|
return viewModel?.shouldMaskRecordedView ?? false
|
||||||
}
|
}
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Computed Properties
|
// MARK: - Computed Properties
|
||||||
@ -99,7 +99,7 @@ import VDS
|
|||||||
|
|
||||||
publisher(for: .valueChanged)
|
publisher(for: .valueChanged)
|
||||||
.sink { [weak self] control in
|
.sink { [weak self] control in
|
||||||
guard let self else { return }
|
guard let self, let viewModel else { return }
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
if (viewModel.type == .email) {
|
if (viewModel.type == .email) {
|
||||||
// remove spaces (either user entered Or auto-correct suggestion) for the email field
|
// remove spaces (either user entered Or auto-correct suggestion) for the email field
|
||||||
@ -112,7 +112,7 @@ import VDS
|
|||||||
.sink { [weak self] textView in
|
.sink { [weak self] textView in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
isEditting = true
|
isEditting = true
|
||||||
if viewModel.clearTextOnTap {
|
if let viewModel, viewModel.clearTextOnTap {
|
||||||
text = ""
|
text = ""
|
||||||
}
|
}
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
@ -122,7 +122,7 @@ import VDS
|
|||||||
.sink { [weak self] textView in
|
.sink { [weak self] textView in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
isEditting = false
|
isEditting = false
|
||||||
if validateWhenDoneEditing, let valid = viewModel.isValid {
|
if let viewModel, validateWhenDoneEditing, let valid = viewModel.isValid {
|
||||||
updateValidation(valid)
|
updateValidation(valid)
|
||||||
}
|
}
|
||||||
regexTextFieldOutputIfAvailable()
|
regexTextFieldOutputIfAvailable()
|
||||||
|
|||||||
@ -29,7 +29,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
|
|||||||
|
|
||||||
private var isEditting: Bool = false {
|
private var isEditting: Bool = false {
|
||||||
didSet {
|
didSet {
|
||||||
viewModel.selected = isEditting
|
viewModel?.selected = isEditting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
|
|||||||
// MARK: - Computed Properties
|
// MARK: - Computed Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
open var shouldMaskWhileRecording: Bool {
|
open var shouldMaskWhileRecording: Bool {
|
||||||
return viewModel.shouldMaskRecordedView ?? false
|
return viewModel?.shouldMaskRecordedView ?? false
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Placeholder access for the textView.
|
/// Placeholder access for the textView.
|
||||||
@ -91,7 +91,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
|
|||||||
|
|
||||||
publisher(for: .valueChanged)
|
publisher(for: .valueChanged)
|
||||||
.sink { [weak self] control in
|
.sink { [weak self] control in
|
||||||
guard let self else { return }
|
guard let self, let viewModel else { return }
|
||||||
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
_ = FormValidator.validate(delegate: delegateObject?.formHolderDelegate)
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ open class TextViewEntryField: VDS.TextArea, VDSMoleculeViewProtocol, ObservingT
|
|||||||
.sink { [weak self] textView in
|
.sink { [weak self] textView in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
isEditting = false
|
isEditting = false
|
||||||
if let valid = viewModel.isValid {
|
if let viewModel, let valid = viewModel.isValid {
|
||||||
updateValidation(valid)
|
updateValidation(valid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -142,7 +142,7 @@ import VDS
|
|||||||
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
|
||||||
//TODO: Fix issue with default state
|
//TODO: Fix issue with default state
|
||||||
//showError = !isValid
|
//showError = !isValid
|
||||||
isEnabled = viewModel.enabled
|
isEnabled = viewModel.enabled
|
||||||
|
|||||||
@ -74,7 +74,7 @@ import VDS
|
|||||||
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
|
||||||
//TODO: Fix issue with default state
|
//TODO: Fix issue with default state
|
||||||
//showError = !isValid
|
//showError = !isValid
|
||||||
errorText = viewModel.checkbox.errorMessage
|
errorText = viewModel.checkbox.errorMessage
|
||||||
|
|||||||
@ -16,13 +16,15 @@ public class FormLabel: Label {
|
|||||||
//public properties
|
//public properties
|
||||||
public override var isEnabled: Bool {
|
public override var isEnabled: Bool {
|
||||||
didSet{
|
didSet{
|
||||||
self.formModel.enabled = isEnabled
|
guard let formModel else { return }
|
||||||
|
formModel.enabled = isEnabled
|
||||||
self.set(with: isRequired ? formModel.model : formModel.requiredModel, delegateObject, additionalData)
|
self.set(with: isRequired ? formModel.model : formModel.requiredModel, delegateObject, additionalData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public var isRequired: Bool = true {
|
public var isRequired: Bool = true {
|
||||||
didSet{
|
didSet{
|
||||||
|
guard let formModel else { return }
|
||||||
self.set(with: isRequired ? formModel.model : formModel.requiredModel, delegateObject, additionalData)
|
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
|
/// Text change that will update both enabledModel and disabledModel text values
|
||||||
/// - Parameter text: text you want to see
|
/// - Parameter text: text you want to see
|
||||||
public func set(text: String?){
|
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) {
|
open func setStyle(_ style: LineModel.Style) {
|
||||||
viewModel.type = style
|
viewModel?.type = style
|
||||||
update(viewModel: viewModel)
|
update(viewModel: viewModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ import VDS
|
|||||||
}
|
}
|
||||||
|
|
||||||
open override func draw(_ rect: CGRect) {
|
open override func draw(_ rect: CGRect) {
|
||||||
guard viewModel.type != .none else { return }
|
guard let viewModel, viewModel.type != .none else { return }
|
||||||
super.draw(rect)
|
super.draw(rect)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@ import VDS
|
|||||||
if let delegate {
|
if let delegate {
|
||||||
onTabDidSelect = { [weak self] index in
|
onTabDidSelect = { [weak self] index in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
viewModel.selectedIndex = index
|
viewModel?.selectedIndex = index
|
||||||
delegate.didSelectItem(.init(row: index, section: 0), tabs: self)
|
delegate.didSelectItem(.init(row: index, section: 0), tabs: self)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user