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 //--------------------------------------------------