From bf02b185ed056cc88f635a26d7e965949d9166cb Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 13 May 2023 13:53:04 -0400 Subject: [PATCH] Fix StatusState copying removing cached state Closes #380 --- .../Pachyderm/Sources/Pachyderm/Utilities/CollapseState.swift | 4 +++- Tusker/Extensions/StatusStateResolver.swift | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Packages/Pachyderm/Sources/Pachyderm/Utilities/CollapseState.swift b/Packages/Pachyderm/Sources/Pachyderm/Utilities/CollapseState.swift index 3596f484..2f40364b 100644 --- a/Packages/Pachyderm/Sources/Pachyderm/Utilities/CollapseState.swift +++ b/Packages/Pachyderm/Sources/Pachyderm/Utilities/CollapseState.swift @@ -24,7 +24,9 @@ public final class CollapseState: Sendable { } public func copy() -> CollapseState { - return CollapseState(collapsible: self.collapsible, collapsed: self.collapsed) + let new = CollapseState(collapsible: self.collapsible, collapsed: self.collapsed) + new.statusPropertiesHash = self.statusPropertiesHash + return new } public func hash(into hasher: inout Hasher) { diff --git a/Tusker/Extensions/StatusStateResolver.swift b/Tusker/Extensions/StatusStateResolver.swift index a91f5472..bf8ea10d 100644 --- a/Tusker/Extensions/StatusStateResolver.swift +++ b/Tusker/Extensions/StatusStateResolver.swift @@ -19,7 +19,7 @@ extension StatusEdit: CollapseStateResolving {} extension CollapseState { func resolveFor(status: CollapseStateResolving, height: () -> CGFloat, textLength: Int? = nil) -> Bool { - lazy var newHash = hashStatusProperties(status: status) + let newHash = hashStatusProperties(status: status) guard unknown || statusPropertiesHash != newHash else { return false }