From 5c36d15b2befbb02bb5367ae427aa8c063a74e64 Mon Sep 17 00:00:00 2001 From: Diogo Date: Wed, 6 Nov 2024 10:38:03 +0000 Subject: [PATCH] first page sometimes blocks fetches --- apps/ios/Shared/Views/Chat/ChatView.swift | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index fc6aa08384..5f06a28452 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -31,7 +31,6 @@ struct ChatView: View { @State private var customUserProfile: Profile? @State private var connectionCode: String? @State private var loadingItems = false - @State private var firstPage = false @State private var revealedChatItem: ChatItem? @State private var searchMode = false @State private var searchText: String = "" @@ -859,7 +858,7 @@ struct ChatView: View { private func loadChatItems(_ cInfo: ChatInfo, _ pagination: ChatPagination = .initial(count: loadItemsPerPage)) { Task { - if loadingItems || firstPage { return } + if loadingItems { return } loadingItems = true do { var reversedPage = Array() @@ -885,18 +884,18 @@ struct ChatView: View { reversedPage.append(contentsOf: chatItems.reversed()) } let dedupedreversePage = reversedPage.filter { !im.chatItemIds.contains($0.id) } - await MainActor.run { - if reversedPage.count == 0 { - firstPage = true - } else { + + logger.error("[scrolling] deduped: \(dedupedreversePage.count) \(reversedPage.count)") + await MainActor.run { + if dedupedreversePage.count > 0 { switch pagination { case .before, .last, .initial: im.reversedChatItems.append(contentsOf: dedupedreversePage) case let .after(chatItemId, _): let index = im.reversedChatItems.firstIndex { $0.id == chatItemId } logger.error("[scrolling] setting: \(dedupedreversePage.count) \(index ?? -1)") - + if let index { if let gap = im.gap { let size = gap.size - dedupedreversePage.count