From f001f98d3a09557172b0152b4d7372e22c79e3ed Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Tue, 16 Jul 2024 14:20:37 -0400 Subject: [PATCH 1/2] Digital PCT265 story DE307-834: Add missing BadgeModel isEqual(to:). --- MVMCoreUI/Atomic/Atoms/Views/BadgeModel.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/MVMCoreUI/Atomic/Atoms/Views/BadgeModel.swift b/MVMCoreUI/Atomic/Atoms/Views/BadgeModel.swift index b739baf7..e04cc47e 100644 --- a/MVMCoreUI/Atomic/Atoms/Views/BadgeModel.swift +++ b/MVMCoreUI/Atomic/Atoms/Views/BadgeModel.swift @@ -53,4 +53,15 @@ open class BadgeModel: MoleculeModelProtocol { try container.encode(numberOfLines, forKey: .numberOfLines) try container.encodeIfPresent(maxWidth, forKey: .maxWidth) } + + public func isEqual(to model: any ModelComparisonProtocol) -> Bool { + guard let model = model as? BadgeModel else { return false } + return self.backgroundColor == model.backgroundColor + && self.fillColor == model.fillColor + && self.numberOfLines == model.numberOfLines + && self.text == model.text + && self.surface == model.surface + && self.accessibilityText == model.accessibilityText + && self.maxWidth == model.maxWidth + } } From 46d57733e4618104af8a1cf07210987e46179a75 Mon Sep 17 00:00:00 2001 From: "Hedden, Kyle Matthew" Date: Tue, 16 Jul 2024 14:32:48 -0400 Subject: [PATCH 2/2] Digital PCT265 story DE307-834: Increase throttle time for collision safety. As a throttle this is to space the updates at regular intervals. This should also help reduce some of the page stuttering as there will be bigger update batches. --- MVMCoreUI/BaseControllers/ViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MVMCoreUI/BaseControllers/ViewController.swift b/MVMCoreUI/BaseControllers/ViewController.swift index a6c43b2d..043627e6 100644 --- a/MVMCoreUI/BaseControllers/ViewController.swift +++ b/MVMCoreUI/BaseControllers/ViewController.swift @@ -78,7 +78,7 @@ import Combine return (next.0 ?? accumulator.0, next.1 ?? accumulator.1, next.2?.mergingRight(accumulator.2 ?? [:])) } // Delay allowing the previous model update to settle before triggering a re-render. - .throttle(for: .seconds(0.05), scheduler: RunLoop.main, latest: true) + .throttle(for: .seconds(0.25), scheduler: RunLoop.main, latest: true) .sink { [weak self] (pageUpdates: [String : Any]?, pageModel: PageModelProtocol?, moduleUpdates: [String : Any]?) in guard let self = self else { return } if let pageUpdates, pageModel != nil {