Merge branch 'feature/VDS-RadioButton' into 'develop'

Feature/vds radio button

See merge request BPHV_MIPS/mvm_core_ui!892
This commit is contained in:
Bruce, Matt R 2022-08-03 18:01:12 +00:00
commit 3d807a4ac6
2 changed files with 18 additions and 8 deletions

View File

@ -7,14 +7,15 @@
// //
import UIKit import UIKit
import VDSColorTokens
import VDSFormControlsTokens
@objcMembers open class RadioButton: Control, MFButtonProtocol { @objcMembers open class RadioButton: Control, MFButtonProtocol {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
//-------------------------------------------------- //--------------------------------------------------
public var diameter: CGFloat = 30 { public var diameter: CGFloat = 20 {
didSet { widthConstraint?.constant = diameter } didSet { widthConstraint?.constant = diameter }
} }
@ -24,9 +25,12 @@ import UIKit
updateAccessibilityLabel() updateAccessibilityLabel()
} }
} }
public var enabledColor: UIColor {
public var enabledColor: UIColor = .mvmBlack return radioModel?.inverted ?? false ? VDSFormControlsColor.borderOndark : VDSFormControlsColor.borderOnlight
public var disabledColor: UIColor = .mvmCoolGray3 }
public var disabledColor: UIColor {
return radioModel?.inverted ?? false ? VDSColor.interactiveDisabledOndark : VDSColor.interactiveDisabledOnlight
}
public var delegateObject: MVMCoreUIDelegateObject? public var delegateObject: MVMCoreUIDelegateObject?
var additionalData: [AnyHashable: Any]? var additionalData: [AnyHashable: Any]?
@ -141,9 +145,9 @@ import UIKit
open override func setupView() { open override func setupView() {
super.setupView() super.setupView()
backgroundColor = .mvmWhite backgroundColor = .clear
clipsToBounds = true clipsToBounds = true
widthConstraint = widthAnchor.constraint(equalToConstant: 30) widthConstraint = widthAnchor.constraint(equalToConstant: 20)
widthConstraint?.isActive = true widthConstraint?.isActive = true
heightConstraint = heightAnchor.constraint(equalTo: widthAnchor, multiplier: 1) heightConstraint = heightAnchor.constraint(equalTo: widthAnchor, multiplier: 1)
heightConstraint?.isActive = true heightConstraint?.isActive = true
@ -169,6 +173,6 @@ import UIKit
public override func reset() { public override func reset() {
super.reset() super.reset()
backgroundColor = .mvmWhite backgroundColor = .clear
} }
} }

View File

@ -28,6 +28,7 @@ open class RadioButtonModel: MoleculeModelProtocol, FormFieldProtocol {
public var groupName: String = FormValidator.defaultGroupName public var groupName: String = FormValidator.defaultGroupName
public var fieldKey: String? public var fieldKey: String?
public var action: ActionModelProtocol? public var action: ActionModelProtocol?
public var inverted: Bool = false
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Keys // MARK: - Keys
@ -44,6 +45,7 @@ open class RadioButtonModel: MoleculeModelProtocol, FormFieldProtocol {
case groupName case groupName
case action case action
case readOnly case readOnly
case inverted
} }
//-------------------------------------------------- //--------------------------------------------------
@ -94,6 +96,9 @@ open class RadioButtonModel: MoleculeModelProtocol, FormFieldProtocol {
} }
fieldValue = try typeContainer.decodeIfPresent(String.self, forKey: .fieldValue) fieldValue = try typeContainer.decodeIfPresent(String.self, forKey: .fieldValue)
action = try typeContainer.decodeModelIfPresent(codingKey: .action) action = try typeContainer.decodeModelIfPresent(codingKey: .action)
if let inverted = try typeContainer.decodeIfPresent(Bool.self, forKey: .inverted) {
self.inverted = inverted
}
} }
public func encode(to encoder: Encoder) throws { public func encode(to encoder: Encoder) throws {
@ -108,5 +113,6 @@ open class RadioButtonModel: MoleculeModelProtocol, FormFieldProtocol {
try container.encodeIfPresent(groupName, forKey: .groupName) try container.encodeIfPresent(groupName, forKey: .groupName)
try container.encodeIfPresent(fieldValue, forKey: .fieldValue) try container.encodeIfPresent(fieldValue, forKey: .fieldValue)
try container.encodeModelIfPresent(action, forKey: .action) try container.encodeModelIfPresent(action, forKey: .action)
try container.encodeIfPresent(inverted, forKey: .inverted)
} }
} }