kyle enhancements

This commit is contained in:
Pfeil, Scott Robert 2021-03-29 17:03:35 -04:00
parent a043cb5eb5
commit 4a5f35820c
3 changed files with 3 additions and 4 deletions

View File

@ -21,8 +21,7 @@ public class EyebrowHeadlineBodyLinkModel: MoleculeModelProtocol, ParentMolecule
public var link: LinkModel? public var link: LinkModel?
public var children: [MoleculeModelProtocol] { public var children: [MoleculeModelProtocol] {
let molecules: [MoleculeModelProtocol?] = [eyebrow, headline, body, link] [eyebrow, headline, body, link].compactMap { (molecule: MoleculeModelProtocol?) in molecule }
return molecules.compactMap{ $0 }
} }
//-------------------------------------------------- //--------------------------------------------------

View File

@ -37,7 +37,7 @@ public extension TemplateProtocol where Self: ViewController {
/// Traverses all models and adds any required behavior models. /// Traverses all models and adds any required behavior models.
func traverseAndAddRequiredBehaviors() { func traverseAndAddRequiredBehaviors() {
guard var model = model else { return } guard var model = model else { return }
let behaviorModels: [PageBehaviorModelProtocol] = model.rootMolecules.reduceDepthFirstTraverse(options: .childFirst, depth: 0, initialResult: []) { (accumulator, molecule, depth) in let behaviorModels: [PageBehaviorModelProtocol] = model.reduceDepthFirstTraverse(options: .childFirst, depth: 0, initialResult: []) { (accumulator, molecule, depth) in
if let behaviorRequirer = molecule as? PageBehaviorProtocolRequirer { if let behaviorRequirer = molecule as? PageBehaviorProtocolRequirer {
return accumulator + behaviorRequirer.getRequiredBehaviors() return accumulator + behaviorRequirer.getRequiredBehaviors()
} }

View File

@ -56,7 +56,7 @@ public class PageGetContactBehavior: PageVisibilityBehavior {
// Iterate models and provide contact // Iterate models and provide contact
let page = self?.delegate?.moleculeDelegate as? PageProtocol let page = self?.delegate?.moleculeDelegate as? PageProtocol
let store = CNContactStore() let store = CNContactStore()
let consumers: [PageGetContactBehaviorConsumerProtocol] = model.rootMolecules.allMoleculesOfType() let consumers: [PageGetContactBehaviorConsumerProtocol] = model.allMoleculesOfType()
for consumer in consumers { for consumer in consumers {
guard let parameters = consumer.getMatchParameters(), guard let parameters = consumer.getMatchParameters(),
let contacts = try? store.unifiedContacts(matching: parameters.0, keysToFetch: parameters.1) else { return } let contacts = try? store.unifiedContacts(matching: parameters.0, keysToFetch: parameters.1) else { return }