mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-11-23 00:40:59 +00:00
Statuses: Cleanup viewId
This commit is contained in:
parent
924e1b6057
commit
632b3f5734
2 changed files with 2 additions and 17 deletions
|
@ -8,7 +8,6 @@ public enum Visibility: String, Codable, CaseIterable, Hashable, Equatable, Send
|
||||||
}
|
}
|
||||||
|
|
||||||
public protocol AnyStatus {
|
public protocol AnyStatus {
|
||||||
var viewId: StatusViewId { get }
|
|
||||||
var id: String { get }
|
var id: String { get }
|
||||||
var content: HTMLString { get }
|
var content: HTMLString { get }
|
||||||
var account: Account { get }
|
var account: Account { get }
|
||||||
|
@ -38,20 +37,9 @@ public protocol AnyStatus {
|
||||||
var isHidden: Bool { get }
|
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 final class Status: AnyStatus, Codable, Identifiable, Equatable, Hashable {
|
||||||
public static func == (lhs: Status, rhs: Status) -> Bool {
|
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) {
|
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.
|
// Every property in Status is immutable.
|
||||||
extension Status: Sendable {}
|
extension Status: Sendable {}
|
||||||
|
|
||||||
|
|
|
@ -47,12 +47,11 @@ public struct StatusesListView<Fetcher>: View where Fetcher: StatusesFetcher {
|
||||||
.listRowSeparator(.hidden)
|
.listRowSeparator(.hidden)
|
||||||
|
|
||||||
case let .display(statuses, nextPageState):
|
case let .display(statuses, nextPageState):
|
||||||
ForEach(statuses, id: \.viewId) { status in
|
ForEach(statuses, id: \.id) { status in
|
||||||
StatusRowView(viewModel: StatusRowViewModel(status: status,
|
StatusRowView(viewModel: StatusRowViewModel(status: status,
|
||||||
client: client,
|
client: client,
|
||||||
routerPath: routerPath,
|
routerPath: routerPath,
|
||||||
isRemote: isRemote))
|
isRemote: isRemote))
|
||||||
.id(status.id)
|
|
||||||
.onAppear {
|
.onAppear {
|
||||||
fetcher.statusDidAppear(status: status)
|
fetcher.statusDidAppear(status: status)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue