tabsListItem parent protocol conformance

This commit is contained in:
Hedden, Kyle Matthew 2023-09-18 19:20:48 -04:00
parent 1cb490f822
commit 91081cf6a6

View File

@ -9,7 +9,7 @@
import UIKit import UIKit
public class TabsListItemModel: ListItemModel, MoleculeModelProtocol { public class TabsListItemModel: ListItemModel, ParentMoleculeModelProtocol {
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Properties // MARK: - Properties
//-------------------------------------------------- //--------------------------------------------------
@ -19,6 +19,23 @@ public class TabsListItemModel: ListItemModel, MoleculeModelProtocol {
var molecules: [[ListItemModelProtocol & MoleculeModelProtocol]] var molecules: [[ListItemModelProtocol & MoleculeModelProtocol]]
private var addedMolecules: [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 // MARK: - Keys
//-------------------------------------------------- //--------------------------------------------------