From 91081cf6a6c226149e7100a7c0410092092d7731 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Mon, 18 Sep 2023 19:20:48 -0400 Subject: [PATCH] tabsListItem parent protocol conformance --- .../Molecules/Items/TabsListItemModel.swift | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/MVMCoreUI/Atomic/Molecules/Items/TabsListItemModel.swift b/MVMCoreUI/Atomic/Molecules/Items/TabsListItemModel.swift index becb0106..82f65e0b 100644 --- a/MVMCoreUI/Atomic/Molecules/Items/TabsListItemModel.swift +++ b/MVMCoreUI/Atomic/Molecules/Items/TabsListItemModel.swift @@ -9,7 +9,7 @@ import UIKit -public class TabsListItemModel: ListItemModel, MoleculeModelProtocol { +public class TabsListItemModel: ListItemModel, ParentMoleculeModelProtocol { //-------------------------------------------------- // MARK: - Properties //-------------------------------------------------- @@ -19,6 +19,23 @@ public class TabsListItemModel: ListItemModel, MoleculeModelProtocol { var molecules: [[ListItemModelProtocol & MoleculeModelProtocol]] private var addedMolecules: [ListItemModelProtocol & MoleculeModelProtocol]? + public var children: [MoleculeModelProtocol] { + return molecules.flatMap { $0 } + } + + public func replaceChildMolecule(with replacementMolecule: MoleculeModelProtocol) throws -> Bool { + guard let replacementMolecule = replacementMolecule as? ListItemModelProtocol & MoleculeModelProtocol else { return false } + for (tabIndex, _) in molecules.enumerated() { + for (elementIndex, _) in molecules[tabIndex].enumerated() { + if molecules[tabIndex][elementIndex].id == replacementMolecule.id { + molecules[tabIndex][elementIndex] = replacementMolecule + return true + } + } + } + return false + } + //-------------------------------------------------- // MARK: - Keys //--------------------------------------------------