From f3043b608cae22957f8e9ae117cd986b71445687 Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Thu, 28 Dec 2023 12:31:16 +0100 Subject: [PATCH] Better date pre compute --- Packages/Models/Sources/Models/Alias/ServerDate.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Packages/Models/Sources/Models/Alias/ServerDate.swift b/Packages/Models/Sources/Models/Alias/ServerDate.swift index c6806f9c..986e19d4 100644 --- a/Packages/Models/Sources/Models/Alias/ServerDate.swift +++ b/Packages/Models/Sources/Models/Alias/ServerDate.swift @@ -6,11 +6,11 @@ private enum CodingKeys: CodingKey { public struct ServerDate: Codable, Hashable, Equatable, Sendable { public let asDate: Date - private let aDay: TimeInterval = 60 * 60 * 24 + private let isOlderThanADay: Bool public var relativeFormatted: String { let date = asDate - if Date().timeIntervalSince(date) >= aDay { + if isOlderThanADay { return DateFormatterCache.shared.createdAtRelativeFormatter.localizedString(for: date, relativeTo: Date()) } else { @@ -27,6 +27,7 @@ public struct ServerDate: Codable, Hashable, Equatable, Sendable { public init() { asDate = Date() - 100 + isOlderThanADay = false } public init(from decoder: Decoder) throws { @@ -40,6 +41,9 @@ public struct ServerDate: Codable, Hashable, Equatable, Sendable { let container = try decoder.container(keyedBy: CodingKeys.self) asDate = try container.decode(Date.self, forKey: .asDate) } + + let aDay: TimeInterval = 60 * 60 * 24 + isOlderThanADay = Date().timeIntervalSince(asDate) >= aDay } public func encode(to encoder: Encoder) throws {