notifications: don't do expensive id calculation

This commit is contained in:
William Casarin
2023-07-29 09:16:14 -07:00
parent 7040235605
commit 66e204eb91
2 changed files with 4 additions and 18 deletions

View File

@@ -35,22 +35,7 @@ enum NotificationItem {
return nil
}
}
var id: String {
switch self {
case .repost(let evid, _):
return "repost_" + evid
case .reaction(let evid, _):
return "reaction_" + evid
case .profile_zap:
return "profile_zap"
case .event_zap(let evid, _):
return "event_zap_" + evid
case .reply(let ev):
return "reply_" + ev.id
}
}
var last_event_at: UInt32 {
switch self {
case .reaction(_, let evgrp):

View File

@@ -166,8 +166,9 @@ struct NotificationsView: View {
Color.white.opacity(0)
.id("startblock")
.frame(height: 5)
ForEach(filter.filter(contacts: state.contacts, items: notifications.notifications), id: \.id) { item in
NotificationItemView(state: state, item: item)
let notifs = Array(zip(1..., filter.filter(contacts: state.contacts, items: notifications.notifications)))
ForEach(notifs, id: \.0) { zip in
NotificationItemView(state: state, item: zip.1)
}
}
.background(GeometryReader { proxy -> Color in