reuse fixes
This commit is contained in:
parent
d66da2d2b8
commit
03438a1165
@ -13,46 +13,50 @@ import UIKit
|
|||||||
public var fieldKey: String?
|
public var fieldKey: String?
|
||||||
public var groupName: String = FormValidator.defaultGroupName
|
public var groupName: String = FormValidator.defaultGroupName
|
||||||
private var selectedRadioButton: RadioButton?
|
private var selectedRadioButton: RadioButton?
|
||||||
private var fieldGroupName: String?
|
private var selectedRadioButtonModel: RadioButtonModel?
|
||||||
public var baseValue: AnyHashable?
|
public var baseValue: AnyHashable?
|
||||||
|
|
||||||
init(_ radioButtonModel: RadioButtonModel?) {
|
public func set(_ radioButtonModel: RadioButtonModel, _ radioButton: RadioButton) {
|
||||||
self.fieldKey = radioButtonModel?.fieldKey
|
self.fieldKey = radioButtonModel.fieldKey
|
||||||
if radioButtonModel?.state ?? false {
|
if radioButtonModel.state {
|
||||||
self.baseValue = radioButtonModel?.formFieldValue()
|
if self.baseValue == nil {
|
||||||
|
self.baseValue = radioButtonModel.fieldValue
|
||||||
|
}
|
||||||
|
selectedRadioButtonModel = radioButtonModel
|
||||||
|
|
||||||
|
// Below code is needed for cell resuse scenario.
|
||||||
|
radioButton.isSelected = true
|
||||||
|
selectedRadioButton = radioButton
|
||||||
|
} else {
|
||||||
|
radioButton.isSelected = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static func setupForRadioButtonGroup(_ radioButtonModel: RadioButtonModel, _ radioButton: RadioButton, delegateObject: MVMCoreUIDelegateObject?) {
|
public static func setupForRadioButtonGroup(_ radioButtonModel: RadioButtonModel, _ radioButton: RadioButton, delegateObject: MVMCoreUIDelegateObject?) {
|
||||||
guard let groupName = radioButtonModel.fieldKey,
|
guard let groupName = radioButtonModel.fieldKey,
|
||||||
let formValidator = delegateObject?.formHolderDelegate?.formValidator else {
|
let formValidator = delegateObject?.formHolderDelegate?.formValidator else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let radioButtonSelectionHelper = formValidator.radioButtonsModelByGroup[groupName] ?? RadioButtonSelectionHelper(radioButtonModel)
|
|
||||||
radioButtonSelectionHelper.fieldGroupName = radioButtonModel.fieldKey
|
|
||||||
formValidator.radioButtonsModelByGroup[groupName] = radioButtonSelectionHelper
|
|
||||||
|
|
||||||
if radioButtonModel.state {
|
let radioButtonSelectionHelper = formValidator.radioButtonsModelByGroup[groupName] ?? RadioButtonSelectionHelper()
|
||||||
radioButtonSelectionHelper.selectedRadioButton = radioButton
|
radioButtonSelectionHelper.set(radioButtonModel, radioButton)
|
||||||
}
|
formValidator.radioButtonsModelByGroup[groupName] = radioButtonSelectionHelper
|
||||||
FormValidator.setupValidation(for: radioButtonSelectionHelper, delegate: delegateObject?.formHolderDelegate)
|
FormValidator.setupValidation(for: radioButtonSelectionHelper, delegate: delegateObject?.formHolderDelegate)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func selected(_ radioButton: RadioButton) {
|
public func selected(_ radioButton: RadioButton) {
|
||||||
selectedRadioButton?.isSelected = false
|
selectedRadioButton?.isSelected = false
|
||||||
|
selectedRadioButtonModel?.state = false
|
||||||
selectedRadioButton = radioButton
|
selectedRadioButton = radioButton
|
||||||
|
|
||||||
selectedRadioButton?.isSelected = true
|
selectedRadioButton?.isSelected = true
|
||||||
|
selectedRadioButtonModel = selectedRadioButton?.radioModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - FormValidationFormFieldProtocol
|
// MARK: - FormValidationFormFieldProtocol
|
||||||
extension RadioButtonSelectionHelper {
|
extension RadioButtonSelectionHelper {
|
||||||
public func formFieldGroupName() -> String? {
|
|
||||||
return selectedRadioButton?.formFieldGroupName() ?? self.fieldGroupName
|
|
||||||
}
|
|
||||||
|
|
||||||
public func formFieldValue() -> AnyHashable? {
|
public func formFieldValue() -> AnyHashable? {
|
||||||
return selectedRadioButton?.formFieldValue()
|
return selectedRadioButtonModel?.fieldValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user