Various fixes

This commit is contained in:
Ilya Laktyushin
2024-05-22 18:23:32 +04:00
parent f77b7a7b33
commit 418968604c
9 changed files with 92 additions and 37 deletions

View File

@@ -85,8 +85,10 @@ extension ChatControllerImpl {
}
var fromIndex: MessageIndex?
var fromMessage: Message?
if let fromId = fromId, let message = self.chatDisplayNode.historyNode.messageInCurrentHistoryView(fromId) {
fromIndex = message.index
fromMessage = message
} else {
if let message = self.chatDisplayNode.historyNode.anchorMessageInCurrentHistoryView() {
fromIndex = message.index
@@ -110,9 +112,15 @@ extension ChatControllerImpl {
}
if isPinnedMessages || forceNew, let messageId = messageLocation.messageId {
let peerSignal: Signal<EnginePeer?, NoError>
if forceNew, let fromMessage, let peer = fromMessage.peers[fromMessage.id.peerId] {
peerSignal = .single(EnginePeer(peer))
} else {
peerSignal = self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: messageId.peerId))
}
let _ = (combineLatest(
self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: messageId.peerId)),
self.context.engine.messages.getMessagesLoadIfNecessary([messageId], strategy: .local)
peerSignal,
self.context.engine.messages.getMessagesLoadIfNecessary([messageId], strategy: forceNew ? .cloud(skipLocal: false) : .local)
|> `catch` { _ in
return .single(.result([]))
}