From 632b3f573425f7d96c29103a7ab6fcbcf0eaadaf Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Tue, 2 Jan 2024 14:06:53 +0100 Subject: [PATCH] Statuses: Cleanup viewId --- Packages/Models/Sources/Models/Status.swift | 16 +--------------- .../Sources/Status/List/StatusesListView.swift | 3 +-- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/Packages/Models/Sources/Models/Status.swift b/Packages/Models/Sources/Models/Status.swift index 695ac58d..1469e9c7 100644 --- a/Packages/Models/Sources/Models/Status.swift +++ b/Packages/Models/Sources/Models/Status.swift @@ -8,7 +8,6 @@ public enum Visibility: String, Codable, CaseIterable, Hashable, Equatable, Send } public protocol AnyStatus { - var viewId: StatusViewId { get } var id: String { get } var content: HTMLString { get } var account: Account { get } @@ -38,20 +37,9 @@ public protocol AnyStatus { var isHidden: Bool { get } } -public struct StatusViewId: Hashable { - let id: String - let editedAt: Date? -} - -public extension AnyStatus { - var viewId: StatusViewId { - StatusViewId(id: id, editedAt: editedAt?.asDate) - } -} - public final class Status: AnyStatus, Codable, Identifiable, Equatable, Hashable { public static func == (lhs: Status, rhs: Status) -> Bool { - lhs.id == rhs.id && lhs.viewId == rhs.viewId + lhs.id == rhs.id && lhs.editedAt?.asDate == rhs.editedAt?.asDate } public func hash(into hasher: inout Hasher) { @@ -261,8 +249,6 @@ public final class ReblogStatus: AnyStatus, Codable, Identifiable, Equatable, Ha } } -extension StatusViewId: Sendable {} - // Every property in Status is immutable. extension Status: Sendable {} diff --git a/Packages/Status/Sources/Status/List/StatusesListView.swift b/Packages/Status/Sources/Status/List/StatusesListView.swift index e970881e..0f5cda11 100644 --- a/Packages/Status/Sources/Status/List/StatusesListView.swift +++ b/Packages/Status/Sources/Status/List/StatusesListView.swift @@ -47,12 +47,11 @@ public struct StatusesListView: View where Fetcher: StatusesFetcher { .listRowSeparator(.hidden) case let .display(statuses, nextPageState): - ForEach(statuses, id: \.viewId) { status in + ForEach(statuses, id: \.id) { status in StatusRowView(viewModel: StatusRowViewModel(status: status, client: client, routerPath: routerPath, isRemote: isRemote)) - .id(status.id) .onAppear { fetcher.statusDidAppear(status: status) }