Merge branch 'bugfix/atomic-buttonGroup' into 'develop'

Fix for the reset() issue with default properties being reset for buttonGroup

### Summary
There were buttongroup properties added in the setup() method, however they were getting removed in reset(). 

### JIRA Ticket
https://onejira.verizon.com/browse/CXTDT-602228

Co-authored-by: Matt Bruce <matt.bruce@verizon.com>

See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1175
This commit is contained in:
Pfeil, Scott Robert 2024-08-15 17:32:31 +00:00
commit ffd5242cde
2 changed files with 36 additions and 24 deletions

View File

@ -31,29 +31,38 @@ import VDS
isAccessibilityElement = false isAccessibilityElement = false
addSubview(buttonGroup) addSubview(buttonGroup)
buttonGroup.pinToSuperView() buttonGroup.pinToSuperView()
heightConstraint = height(constant: VDS.Button.Size.large.height, priority: .required)
}
open override func setDefaults() {
super.setDefaults()
buttonGroup.alignment = .center buttonGroup.alignment = .center
buttonGroup.rowQuantityPhone = 2 buttonGroup.rowQuantityPhone = 2
buttonGroup.rowQuantityTablet = 2 buttonGroup.rowQuantityTablet = 2
heightConstraint = height(constant: VDS.Button.Size.large.height, priority: .required) }
open override func reset() {
//we want to reset() all local views/controls first before calling
//super since super.reset() calls setDefaults().
buttonGroup.reset()
super.reset()
} }
//-------------------------------------------------- //--------------------------------------------------
// MARK: - MoleculeViewProtocol // MARK: - MoleculeViewProtocol
//-------------------------------------------------- //--------------------------------------------------
open override func reset() {
super.reset()
buttonGroup.reset()
}
public static func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { public static func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {
guard let model = model as? TwoButtonViewModel, guard let model = model as? TwoButtonViewModel,
let buttonModel = model.primaryButton ?? model.secondaryButton let buttonModel = model.primaryButton ?? model.secondaryButton
else { return 0 } else { return 0 }
return PillButton.estimatedHeight(with: buttonModel, delegateObject) return PillButton.estimatedHeight(with: buttonModel, delegateObject)
} }
//--------------------------------------------------
// MARK: - VDSMoleculeViewProtocol
//--------------------------------------------------
public func viewModelDidUpdate() { public func viewModelDidUpdate() {
var buttons = [PillButton]() var buttons = [PillButton]()
if let secondaryModel = viewModel.secondaryButton { if let secondaryModel = viewModel.secondaryButton {
@ -87,7 +96,5 @@ import VDS
// MARK: - MVMCoreViewProtocol // MARK: - MVMCoreViewProtocol
//-------------------------------------------------- //--------------------------------------------------
public func updateView(_ size: CGFloat) { public func updateView(_ size: CGFloat) {}
setNeedsUpdate()
}
} }

View File

@ -32,21 +32,22 @@ import VDS
isAccessibilityElement = false isAccessibilityElement = false
addSubview(buttonGroup) addSubview(buttonGroup)
buttonGroup.pinToSuperView() buttonGroup.pinToSuperView()
}
open override func setDefaults() {
super.setDefaults()
buttonGroup.alignment = .center buttonGroup.alignment = .center
buttonGroup.rowQuantityPhone = 2 buttonGroup.rowQuantityPhone = 2
buttonGroup.rowQuantityTablet = 2 buttonGroup.rowQuantityTablet = 2
} }
//--------------------------------------------------
// MARK: - MVMCoreViewProtocol
//--------------------------------------------------
open override func reset() { open override func reset() {
super.reset() //we want to reset() all local views/controls first before calling
//super since super.reset() calls setDefaults().
buttonGroup.reset() buttonGroup.reset()
super.reset()
} }
open func updateView(_ size: CGFloat) { }
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Stack Manipulation // MARK: - Stack Manipulation
//-------------------------------------------------- //--------------------------------------------------
@ -90,6 +91,7 @@ import VDS
//-------------------------------------------------- //--------------------------------------------------
// MARK: - MoleculeViewProtocol // MARK: - MoleculeViewProtocol
//-------------------------------------------------- //--------------------------------------------------
open func updateView(_ size: CGFloat) { }
public static func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? { public static func estimatedHeight(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {
guard let model = model as? TwoButtonViewModel, guard let model = model as? TwoButtonViewModel,
@ -99,6 +101,9 @@ import VDS
return PillButton.estimatedHeight(with: buttonModel, delegateObject) return PillButton.estimatedHeight(with: buttonModel, delegateObject)
} }
//--------------------------------------------------
// MARK: - VDSMoleculeViewProtocol
//--------------------------------------------------
public func viewModelDidUpdate() { public func viewModelDidUpdate() {
buttons.removeAll() buttons.removeAll()