Delivery Status Redesign (#931)

This commit is contained in:
Mauro
2023-05-22 15:17:06 +02:00
committed by GitHub
parent 9afc0c0747
commit 8ed8cf6f0c
35 changed files with 233 additions and 101 deletions
@@ -37,7 +37,7 @@ enum TimelineItemProxy {
/// The delivery status for the item.
enum TimelineItemDeliveryStatus: Hashable {
case sending
case sent(elapsedTime: TimeInterval)
case sent
case sendingFailed
}
@@ -54,7 +54,9 @@ struct EventTimelineItemProxy {
}
var deliveryStatus: TimelineItemDeliveryStatus? {
guard let localSendState = item.localSendState() else { return nil }
guard let localSendState = item.localSendState() else {
return nil
}
switch localSendState {
case .notSentYet:
@@ -62,7 +64,7 @@ struct EventTimelineItemProxy {
case .sendingFailed:
return .sendingFailed
case .sent:
return .sent(elapsedTime: Date().timeIntervalSince1970 - timestamp.timeIntervalSince1970)
return .sent
}
}
@@ -109,6 +111,10 @@ struct EventTimelineItemProxy {
let debugInfo = item.debugInfo()
return TimelineItemDebugInfo(model: debugInfo.model, originalJSON: debugInfo.originalJson, latestEditJSON: debugInfo.latestEditJson)
}
var readReceipts: [String: Receipt] {
item.readReceipts()
}
}
extension TimelineItemContentKind {
@@ -162,3 +168,12 @@ struct TimelineItemDebugInfo: Identifiable, CustomStringConvertible {
return String(data: jsonData, encoding: .utf8)
}
}
extension Receipt {
var dateTimestamp: Date? {
guard let timestamp else {
return nil
}
return Date(timeIntervalSince1970: TimeInterval(timestamp / 1000))
}
}