diff --git a/MVMCoreUI/Atomic/Templates/MoleculeListTemplate.swift b/MVMCoreUI/Atomic/Templates/MoleculeListTemplate.swift index cc76ef34..a0f6743c 100644 --- a/MVMCoreUI/Atomic/Templates/MoleculeListTemplate.swift +++ b/MVMCoreUI/Atomic/Templates/MoleculeListTemplate.swift @@ -203,17 +203,10 @@ open class MoleculeListTemplate: ThreeLayerTableViewController, TemplateProtocol open func newData(for molecule: MoleculeModelProtocol) { - //Update the header - if updateHeaderFooter(modelView: topView, molecule: molecule) { + if updateMoleculeViewByModelId(molecule: molecule) { return } - //Update the footer - if updateHeaderFooter(modelView: bottomView, molecule: molecule) { - return - } - - //TODO: expand for navigation, etc guard let moleculesInfo = moleculesInfo else { return } let indicies = moleculesInfo.indices.filter({ index -> Bool in @@ -234,11 +227,14 @@ open class MoleculeListTemplate: ThreeLayerTableViewController, TemplateProtocol } ///Helper functions to update the header/footer view - private func updateHeaderFooter(modelView: UIView?, molecule: MoleculeModelProtocol) -> Bool { - if let updateView = modelView, - let moleculeView = MVMCoreUIUtility.findViews(by: MoleculeViewProtocol.self, views: [updateView]).first(where: { $0.model?.moleculeName == molecule.moleculeName && $0.model?.id == molecule.id }) { - updateMoleculeView(moleculeView, from: molecule) - return true + //TODO: expand for navigation, etc + private func updateMoleculeViewByModelId(molecule: MoleculeModelProtocol) -> Bool { + let headerFooterViews = [topView, bottomView].compactMap({$0 as? MoleculeViewProtocol}) + for headerFooterView in headerFooterViews { + if let moleculeView = MVMCoreUIUtility.findViews(by: MoleculeViewProtocol.self, views: [headerFooterView]).first(where: { $0.model?.moleculeName == molecule.moleculeName && $0.model?.id == molecule.id }) { + updateMoleculeView(moleculeView, from: molecule) + return true + } } return false }