Merge branch 'feature/accordionAnalytics' into 'develop'

Added actions for expand & collapsed to track analytics data

See merge request BPHV_MIPS/mvm_core_ui!873
This commit is contained in:
Hedden, Kyle Matthew 2022-07-11 21:31:23 +00:00
commit 84246df1b3
2 changed files with 12 additions and 1 deletions

View File

@ -18,7 +18,8 @@ class AccordionListItemModel: MoleculeListItemModel {
public var molecules: [ListItemModelProtocol & MoleculeModelProtocol] public var molecules: [ListItemModelProtocol & MoleculeModelProtocol]
public var hideLineWhenExpanded: Bool = false public var hideLineWhenExpanded: Bool = false
public var selected: Bool = false public var selected: Bool = false
public var expandAction: ActionModelProtocol?
public var collapseAction: ActionModelProtocol?
private var added: Bool = false private var added: Bool = false
//-------------------------------------------------- //--------------------------------------------------
@ -31,6 +32,8 @@ class AccordionListItemModel: MoleculeListItemModel {
case molecule case molecule
case hideLineWhenExpanded case hideLineWhenExpanded
case selected case selected
case expandAction
case collapseAction
} }
//-------------------------------------------------- //--------------------------------------------------
@ -62,6 +65,8 @@ class AccordionListItemModel: MoleculeListItemModel {
if let hideLine = try typeContainer.decodeIfPresent(Bool.self, forKey: .hideLineWhenExpanded) { if let hideLine = try typeContainer.decodeIfPresent(Bool.self, forKey: .hideLineWhenExpanded) {
hideLineWhenExpanded = hideLine hideLineWhenExpanded = hideLine
} }
expandAction = try typeContainer.decodeModelIfPresent(codingKey: .expandAction)
collapseAction = try typeContainer.decodeModelIfPresent(codingKey: .collapseAction)
try super.init(from: decoder) try super.init(from: decoder)
} }
@ -72,6 +77,8 @@ class AccordionListItemModel: MoleculeListItemModel {
try container.encodeModels(molecules, forKey: .molecules) try container.encodeModels(molecules, forKey: .molecules)
try container.encode(selected, forKey: .selected) try container.encode(selected, forKey: .selected)
try container.encodeIfPresent(hideLineWhenExpanded, forKey: .hideLineWhenExpanded) try container.encodeIfPresent(hideLineWhenExpanded, forKey: .hideLineWhenExpanded)
try container.encodeModelIfPresent(expandAction, forKey: .expandAction)
try container.encodeModelIfPresent(collapseAction, forKey: .collapseAction)
} }
} }

View File

@ -54,6 +54,10 @@
if (accordionListItemModel?.hideLineWhenExpanded ?? false) && (self.bottomSeparatorView?.shouldBeVisible() ?? false) { if (accordionListItemModel?.hideLineWhenExpanded ?? false) && (self.bottomSeparatorView?.shouldBeVisible() ?? false) {
bottomSeparatorView?.isHidden = accordionButton.isSelected bottomSeparatorView?.isHidden = accordionButton.isSelected
} }
if let actionModel = accordionButton.isSelected ? accordionListItemModel?.expandAction : accordionListItemModel?.collapseAction {
MVMCoreActionHandler.shared()?.asyncHandleAction(with: actionModel, additionalData: [KeySourceModel: model], delegateObject: delegateObject)
}
} }
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {