mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Fix forward to monoforum
This commit is contained in:
parent
6dc45113d2
commit
d1ad1668c4
@ -275,36 +275,46 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.peerSelectionNode.requestOpenPeer = { [weak self] peer, threadId in
|
self.peerSelectionNode.requestOpenPeer = { [weak self] peer, threadId in
|
||||||
if let strongSelf = self, let peerSelected = strongSelf.peerSelected {
|
guard let self else {
|
||||||
if case let .channel(peer) = peer, peer.isForumOrMonoForum, threadId == nil, strongSelf.selectForumThreads {
|
return
|
||||||
|
}
|
||||||
|
guard let peerSelected = self.peerSelected else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if case let .channel(peer) = peer, peer.isForumOrMonoForum, threadId == nil, self.selectForumThreads {
|
||||||
let mainPeer: Signal<EnginePeer?, NoError>
|
let mainPeer: Signal<EnginePeer?, NoError>
|
||||||
if peer.isMonoForum, let linkedMonoforumId = peer.linkedMonoforumId {
|
if peer.isMonoForum, let linkedMonoforumId = peer.linkedMonoforumId {
|
||||||
mainPeer = strongSelf.context.engine.data.get(
|
mainPeer = self.context.engine.data.get(
|
||||||
TelegramEngine.EngineData.Item.Peer.Peer(id: linkedMonoforumId)
|
TelegramEngine.EngineData.Item.Peer.Peer(id: linkedMonoforumId)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
mainPeer = .single(nil)
|
mainPeer = .single(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
let _ = (mainPeer |> deliverOnMainQueue).startStandalone(next: { [weak strongSelf] mainPeer in
|
let _ = (mainPeer |> deliverOnMainQueue).startStandalone(next: { [weak self] mainPeer in
|
||||||
guard let strongSelf else {
|
guard let self else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
guard case let .channel(mainChannel) = mainPeer else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let displayPeer = mainPeer ?? EnginePeer(peer)
|
if mainChannel.hasPermission(.manageDirect) {
|
||||||
|
let displayPeer = EnginePeer(mainChannel)
|
||||||
|
|
||||||
let controller = PeerSelectionControllerImpl(
|
let controller = PeerSelectionControllerImpl(
|
||||||
PeerSelectionControllerParams(
|
PeerSelectionControllerParams(
|
||||||
context: strongSelf.context,
|
context: self.context,
|
||||||
updatedPresentationData: nil,
|
updatedPresentationData: nil,
|
||||||
filter: strongSelf.filter,
|
filter: self.filter,
|
||||||
forumPeerId: (peer.id, peer.isMonoForum),
|
forumPeerId: (peer.id, peer.isMonoForum),
|
||||||
hasFilters: false,
|
hasFilters: false,
|
||||||
hasChatListSelector: false,
|
hasChatListSelector: false,
|
||||||
hasContactSelector: false,
|
hasContactSelector: false,
|
||||||
hasGlobalSearch: false,
|
hasGlobalSearch: false,
|
||||||
title: displayPeer.compactDisplayTitle,
|
title: displayPeer.compactDisplayTitle,
|
||||||
attemptSelection: strongSelf.attemptSelection,
|
attemptSelection: self.attemptSelection,
|
||||||
createNewGroup: nil,
|
createNewGroup: nil,
|
||||||
pretendPresentedInModal: false,
|
pretendPresentedInModal: false,
|
||||||
multipleSelection: false,
|
multipleSelection: false,
|
||||||
@ -313,14 +323,16 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon
|
|||||||
selectForumThreads: false
|
selectForumThreads: false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
controller.peerSelected = strongSelf.peerSelected
|
controller.peerSelected = self.peerSelected
|
||||||
strongSelf.push(controller)
|
self.push(controller)
|
||||||
|
} else {
|
||||||
|
peerSelected(.channel(peer), threadId)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
peerSelected(peer, threadId)
|
peerSelected(peer, threadId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
self.peerSelectionNode.requestOpenDisabledPeer = { [weak self] peer, threadId, reason in
|
self.peerSelectionNode.requestOpenDisabledPeer = { [weak self] peer, threadId, reason in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user