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