From 3298caef2856c24b812418b4238f13d957956cd0 Mon Sep 17 00:00:00 2001 From: Diogo Date: Sat, 2 Nov 2024 00:08:47 +0000 Subject: [PATCH] quoted message alert --- .../Views/Chat/ChatItem/FramedItemView.swift | 17 ++++++++++ apps/ios/Shared/Views/Chat/ChatView.swift | 34 +++++-------------- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift b/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift index 5efd68b3e0..d8ae3b4f7f 100644 --- a/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift +++ b/apps/ios/Shared/Views/Chat/ChatItem/FramedItemView.swift @@ -47,6 +47,9 @@ struct FramedItemView: View { } if let qi = chatItem.quotedItem { + let notFoundItemTitle = NSLocalizedString("Message no longer available", comment: "alert title") + let notFoundItemMessage = NSLocalizedString("The quoted message you are trying to view has been deleted.", comment: "alert message") + ciQuoteView(qi) .onTapGesture { if let itemId = qi.itemId { @@ -65,8 +68,22 @@ struct FramedItemView: View { scrollModel.scrollToItem(id: itemId) } } + } else { + AlertManager.shared.showAlert( + Alert( + title: Text(notFoundItemTitle), + message: Text(notFoundItemMessage) + ) + ) } } + } else { + AlertManager.shared.showAlert( + Alert( + title: Text(notFoundItemTitle), + message: Text(notFoundItemMessage) + ) + ) } } } else if let itemForwarded = chatItem.meta.itemForwarded { diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index dc8d027b0f..47b461384e 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -1947,34 +1947,16 @@ private func filtered(_ reversedChatItems: Array) -> Array { func loadItemsAround(_ cInfo: ChatInfo, _ chatItemId: Int64) async -> [ChatItem]? { do { - let im = ItemsModel.shared var reversedPage = Array() - var chatItemsAvailable = true - // Load additional items until the page is +50 large after merging - while chatItemsAvailable && filtered(reversedPage).count < loadItemsPerPage { - let pagination: ChatPagination = .before(chatItemId: chatItemId, count: loadItemsPerPage / 2) - var chatItems = try await apiGetChatItems( - type: cInfo.chatType, - id: cInfo.apiId, - pagination: pagination, - search: "" - ) - if let lastItem = chatItems.last { - let pagination: ChatPagination = .after(chatItemId: lastItem.id, count: loadItemsPerPage / 2) - let afterItems = try await apiGetChatItems( - type: cInfo.chatType, - id: cInfo.apiId, - pagination: pagination, - search: "" - ) - chatItems.append(contentsOf: afterItems) - } + let pagination: ChatPagination = .around(chatItemId: chatItemId, count: loadItemsPerPage * 2) + var chatItems = try await apiGetChatItems( + type: cInfo.chatType, + id: cInfo.apiId, + pagination: pagination, + search: "" + ) - chatItemsAvailable = !chatItems.isEmpty - reversedPage.append(contentsOf: chatItems.reversed()) - } - - return reversedPage + return chatItems.reversed() } catch let error { logger.error("apiGetChat error: \(responseError(error))") return nil