diff --git a/submodules/Postbox/Sources/MessageHistoryTable.swift b/submodules/Postbox/Sources/MessageHistoryTable.swift index e9f0486efa..7c097a125d 100644 --- a/submodules/Postbox/Sources/MessageHistoryTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryTable.swift @@ -2713,6 +2713,12 @@ final class MessageHistoryTable: Table { var associatedStories: [StoryId: CodableEntry] = [:] + if let threadId = message.threadId { + if let peer = peerTable.get(PeerId(threadId)) { + peers[peer.id] = peer + } + } + for media in parsedMedia { for peerId in media.peerIds { if let peer = peerTable.get(peerId) { @@ -2804,6 +2810,12 @@ final class MessageHistoryTable: Table { } } + if let threadId = message.threadId { + if let peer = peerTable.get(PeerId(threadId)) { + peers[peer.id] = peer + } + } + for media in message.media { for peerId in media.peerIds { if let peer = peerTable.get(peerId) { diff --git a/submodules/TelegramCore/Sources/Utils/PeerUtils.swift b/submodules/TelegramCore/Sources/Utils/PeerUtils.swift index d220929f38..04de12d0f6 100644 --- a/submodules/TelegramCore/Sources/Utils/PeerUtils.swift +++ b/submodules/TelegramCore/Sources/Utils/PeerUtils.swift @@ -455,6 +455,18 @@ public func peerViewMainPeer(_ view: PeerView) -> Peer? { } } +public func peerViewMonoforumMainPeer(_ view: PeerView) -> Peer? { + if let peer = peerViewMainPeer(view) { + if let channel = peer as? TelegramChannel, channel.flags.contains(.isMonoforum), let linkedMonoforumId = channel.linkedMonoforumId { + return view.peers[linkedMonoforumId] + } else { + return peer + } + } else { + return nil + } +} + public extension RenderedPeer { convenience init(message: Message) { var peers = SimpleDictionary()