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) {
|
open func handleNewData(_ pageModel: PageModelProtocol? = nil) {
|
||||||
|
|
||||||
guard var newPageModel = pageModel ?? self.pageModel else { return }
|
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
|
var behaviorHandler = self
|
||||||
behaviorHandler.applyBehaviors(pageBehaviorModel: behaviorContainer)
|
behaviorHandler.applyBehaviors(pageBehaviorModel: behaviorContainer)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setup the default navigation bar if it is missing.
|
||||||
if newPageModel.navigationBar == nil {
|
if newPageModel.navigationBar == nil {
|
||||||
let navigationItem = createDefaultLegacyNavigationModel()
|
let navigationItem = createDefaultLegacyNavigationModel()
|
||||||
newPageModel.navigationBar = navigationItem
|
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?
|
if formValidator == nil { // TODO: Can't change form rules?
|
||||||
let rules = (newPageModel as? FormHolderModelProtocol)?.formRules
|
let rules = (newPageModel as? FormHolderModelProtocol)?.formRules
|
||||||
formValidator = FormValidator(rules)
|
formValidator = FormValidator(rules)
|
||||||
@ -311,12 +315,13 @@ import MVMCore
|
|||||||
|
|
||||||
/// Applies the latest model to the UI.
|
/// Applies the latest model to the UI.
|
||||||
open func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {
|
open func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {
|
||||||
guard molecules == nil else { return }
|
|
||||||
|
|
||||||
executeBehaviors { (behavior: PageMoleculeTransformationBehavior) in
|
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 {
|
if let backgroundColor = model?.backgroundColor {
|
||||||
view.backgroundColor = backgroundColor.uiColor
|
view.backgroundColor = backgroundColor.uiColor
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user