mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Various improvements
This commit is contained in:
@@ -12,39 +12,48 @@ extension ChatControllerImpl {
|
||||
context: self.context,
|
||||
sourceNode: node,
|
||||
gesture: gesture,
|
||||
openPeer: { [weak self] peerId in
|
||||
completion: { [weak self] peer, sourceFrame in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
let _ = (self.context.engine.data.get(TelegramEngine.EngineData.Item.Peer.Peer(id: peerId))
|
||||
|> deliverOnMainQueue).start(next: { [weak self] peer in
|
||||
guard let self else {
|
||||
return
|
||||
self.window?.forEachController({ controller in
|
||||
if let controller = controller as? QuickShareToastScreen {
|
||||
controller.dismissWithCommitAction()
|
||||
}
|
||||
self.openPeer(peer: peer, navigation: .chat(textInputState: nil, subject: nil, peekData: nil), fromMessage: nil)
|
||||
})
|
||||
},
|
||||
completion: { [weak self] peerId in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
let enqueueMessage = StandaloneSendEnqueueMessage(
|
||||
content: .forward(forward: StandaloneSendEnqueueMessage.Forward(
|
||||
sourceId: id,
|
||||
threadId: nil
|
||||
)),
|
||||
replyToMessageId: nil
|
||||
let toastScreen = QuickShareToastScreen(
|
||||
context: self.context,
|
||||
peer: peer,
|
||||
sourceFrame: sourceFrame,
|
||||
action: { [weak self] action in
|
||||
guard let self else {
|
||||
return
|
||||
}
|
||||
switch action {
|
||||
case .info:
|
||||
self.openPeer(peer: peer, navigation: .chat(textInputState: nil, subject: nil, peekData: nil), fromMessage: nil)
|
||||
case .commit:
|
||||
let enqueueMessage = StandaloneSendEnqueueMessage(
|
||||
content: .forward(forward: StandaloneSendEnqueueMessage.Forward(
|
||||
sourceId: id,
|
||||
threadId: nil
|
||||
)),
|
||||
replyToMessageId: nil
|
||||
)
|
||||
let _ = (standaloneSendEnqueueMessages(
|
||||
accountPeerId: self.context.account.peerId,
|
||||
postbox: self.context.account.postbox,
|
||||
network: self.context.account.network,
|
||||
stateManager: self.context.account.stateManager,
|
||||
auxiliaryMethods: self.context.account.auxiliaryMethods,
|
||||
peerId: peer.id,
|
||||
threadId: nil,
|
||||
messages: [enqueueMessage]
|
||||
)).startStandalone()
|
||||
}
|
||||
}
|
||||
)
|
||||
let _ = (standaloneSendEnqueueMessages(
|
||||
accountPeerId: self.context.account.peerId,
|
||||
postbox: self.context.account.postbox,
|
||||
network: self.context.account.network,
|
||||
stateManager: self.context.account.stateManager,
|
||||
auxiliaryMethods: self.context.account.auxiliaryMethods,
|
||||
peerId: peerId,
|
||||
threadId: nil,
|
||||
messages: [enqueueMessage]
|
||||
)).startStandalone()
|
||||
self.present(toastScreen, in: .window(.root))
|
||||
}
|
||||
)
|
||||
self.presentInGlobalOverlay(controller)
|
||||
|
||||
Reference in New Issue
Block a user