Digital PCT265 story PCT-135: handleNewData logic fix for orginalModel comparison.

This commit is contained in:
Hedden, Kyle Matthew 2024-05-15 22:25:44 -04:00
parent ffc36c309f
commit eac64ec506

View File

@ -234,13 +234,16 @@ import MVMCore
open func handleNewData(_ pageModel: PageModelProtocol? = nil) {
guard var newPageModel = pageModel ?? self.pageModel else { return }
let originalModel = isFirstRender ? self.pageModel as? MVMControllerModelProtocol : nil
let originalModel = isFirstRender ? nil : self.pageModel as? MVMControllerModelProtocol
if originalModel != nil, let behaviorContainer = newPageModel as? PageBehaviorContainerModelProtocol {
// Refresh our behaviors if there is a page change.
if let behaviorContainer = newPageModel as? (PageBehaviorContainerModelProtocol & TemplateModelProtocol),
(originalModel == nil || originalModel!.id != behaviorContainer.id) {
var behaviorHandler = self
behaviorHandler.applyBehaviors(pageBehaviorModel: behaviorContainer)
}
// Setup the default navigation bar if it is missing.
if newPageModel.navigationBar == nil {
let navigationItem = createDefaultLegacyNavigationModel()
newPageModel.navigationBar = navigationItem
@ -268,6 +271,7 @@ import MVMCore
}
}
// Apply the form validator to the controller.
if formValidator == nil { // TODO: Can't change form rules?
let rules = (newPageModel as? FormHolderModelProtocol)?.formRules
formValidator = FormValidator(rules)
@ -311,12 +315,13 @@ import MVMCore
/// Applies the latest model to the UI.
open func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {
guard molecules == nil else { return }
executeBehaviors { (behavior: PageMoleculeTransformationBehavior) in
behavior.willRender(rootMolecules: getRootMolecules(), delegateObjectIVar)
behavior.willRender(rootMolecules: molecules ?? getRootMolecules(), delegateObjectIVar)
}
guard molecules == nil else { return }
if let backgroundColor = model?.backgroundColor {
view.backgroundColor = backgroundColor.uiColor
}