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