drop items when scrolling up

This commit is contained in:
Diogo
2024-11-07 23:51:56 +00:00
parent 9974460dcf
commit fbddf1d34e
2 changed files with 14 additions and 4 deletions
+11 -1
View File
@@ -916,7 +916,17 @@ struct ChatView: View {
firstPage = true
} else if dedupedreversePage.count > 0 {
switch pagination {
case .before, .last, .initial:
case .last, .initial:
im.reversedChatItems.append(contentsOf: dedupedreversePage)
case .before(_, _):
if im.reversedChatItems.count + dedupedreversePage.count > idealChatListSize {
if let gap = im.gap {
im.gap = ChatGap(index: gap.index, size: gap.size + dedupedreversePage.count)
} else {
im.gap = ChatGap(index: loadItemsPerPage, size: dedupedreversePage.count)
}
im.reversedChatItems.removeSubrange(loadItemsPerPage..<loadItemsPerPage + dedupedreversePage.count)
}
im.reversedChatItems.append(contentsOf: dedupedreversePage)
case let .after(chatItemId, _):
let index = im.reversedChatItems.firstIndex { $0.id == chatItemId }