Digital PCT265 story PCT-135: handleNewData logic fix for orginalModel comparison.
This commit is contained in:
parent
ffc36c309f
commit
eac64ec506
@ -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
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user