diff --git a/submodules/Postbox/Sources/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift index 94961af8fa..db88d90a3c 100644 --- a/submodules/Postbox/Sources/MessageHistoryView.swift +++ b/submodules/Postbox/Sources/MessageHistoryView.swift @@ -420,10 +420,12 @@ final class MutableMessageHistoryView { func updatePeerIds(transaction: PostboxTransaction) { switch self.peerIds { - case let .single(peerId, _): - if let updatedData = transaction.currentUpdatedCachedPeerData[peerId] { - if updatedData.associatedHistoryMessageId != nil { - self.peerIds = .associated(peerId, updatedData.associatedHistoryMessageId) + case let .single(peerId, threadId): + if threadId == nil { + if let updatedData = transaction.currentUpdatedCachedPeerData[peerId] { + if updatedData.associatedHistoryMessageId != nil { + self.peerIds = .associated(peerId, updatedData.associatedHistoryMessageId) + } } } case let .associated(peerId, associatedId): diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 2672a7a8be..9b88b87970 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -4725,10 +4725,12 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.reportIrrelvantGeoNoticePromise.set(.single(nil)) let replyThreadType: ChatTitleContent.ReplyThreadType + var replyThreadId: Int64? switch chatLocation { case .peer: replyThreadType = .replies case let .replyThread(replyThreadMessage): + replyThreadId = Int64(replyThreadMessage.messageId.id) if replyThreadMessage.isChannelPost { replyThreadType = .comments } else { @@ -4742,11 +4744,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let messageAndTopic = messagePromise.get() |> mapToSignal { message -> Signal<(message: Message?, threadData: MessageHistoryThreadData?), NoError> in - guard let message = message else { - return .single((nil, nil)) + guard let replyThreadId = replyThreadId else { + return .single((message, nil)) } - - let viewKey: PostboxViewKey = .messageHistoryThreadInfo(peerId: peerId, threadId: Int64(message.id.id)) + let viewKey: PostboxViewKey = .messageHistoryThreadInfo(peerId: peerId, threadId: replyThreadId) return context.account.postbox.combinedView(keys: [viewKey]) |> map { views -> (message: Message?, threadData: MessageHistoryThreadData?) in guard let view = views.views[viewKey] as? MessageHistoryThreadInfoView else {