Fix build

This commit is contained in:
isaac 2026-05-28 17:23:58 +02:00
parent a7440dea94
commit dce321c77a
4 changed files with 16 additions and 8 deletions

View file

@ -139,12 +139,12 @@ public final class LegacyJoinLinkPreviewController: ViewController {
}
private func join() {
self.disposable.set((self.context.engine.peers.joinChatInteractively(with: self.link) |> deliverOnMainQueue).start(next: { [weak self] peer in
self.disposable.set((self.context.engine.peers.joinChatInteractively(with: self.link) |> deliverOnMainQueue).start(next: { [weak self] result in
if let strongSelf = self {
if strongSelf.isRequest {
strongSelf.present(UndoOverlayController(presentationData: strongSelf.presentationData, content: .inviteRequestSent(title: strongSelf.presentationData.strings.MemberRequests_RequestToJoinSent, text: strongSelf.isGroup ? strongSelf.presentationData.strings.MemberRequests_RequestToJoinSentDescriptionGroup : strongSelf.presentationData.strings.MemberRequests_RequestToJoinSentDescriptionChannel ), elevatedLayout: true, animateInAsReplacement: false, action: { _ in return false }), in: .window(.root))
} else {
if let peer = peer {
if case let .joined(peer) = result, let peer {
strongSelf.navigateToPeer(peer, nil)
}
}

View file

@ -350,7 +350,7 @@ private final class JoinSubjectScreenComponent: Component {
}
self.joinDisposable = (component.context.engine.peers.joinChatInteractively(with: group.link)
|> deliverOnMainQueue).start(next: { [weak self] peer in
|> deliverOnMainQueue).start(next: { [weak self] result in
guard let self, let component = self.component else {
return
}
@ -358,7 +358,7 @@ private final class JoinSubjectScreenComponent: Component {
let presentationData = component.context.sharedContext.currentPresentationData.with { $0 }
self.environment?.controller()?.present(UndoOverlayController(presentationData: presentationData, content: .inviteRequestSent(title: presentationData.strings.MemberRequests_RequestToJoinSent, text: group.isGroup ? presentationData.strings.MemberRequests_RequestToJoinSentDescriptionGroup : presentationData.strings.MemberRequests_RequestToJoinSentDescriptionChannel ), elevatedLayout: true, animateInAsReplacement: false, action: { _ in return false }), in: .window(.root))
} else {
if let peer {
if case let .joined(peer) = result, let peer {
self.navigateToPeer(peer: peer)
}
}

View file

@ -7743,11 +7743,12 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
}
strongSelf.peekTimerDisposable.set(
(strongSelf.context.engine.peers.joinChatInteractively(with: peekData.linkData)
|> deliverOnMainQueue).startStrict(next: { peerId in
|> deliverOnMainQueue).startStrict(next: { result in
guard let strongSelf = self else {
return
}
if peerId == nil {
if case let .joined(peer) = result, peer != nil {
} else {
strongSelf.dismiss()
}
}, error: { _ in

View file

@ -451,11 +451,18 @@ public final class PeerChannelMemberCategoriesContextsManager {
return engine.peers.joinChannel(peerId: peerId, hash: hash)
|> deliverOnMainQueue
|> beforeNext { [weak self] result in
if let strongSelf = self, let updated = result {
if let strongSelf = self {
strongSelf.impl.with { impl in
for (contextPeerId, context) in impl.contexts {
if peerId == contextPeerId {
context.replayUpdates([(nil, updated, nil)])
switch result {
case let .joined(participant):
if let participant {
context.replayUpdates([(nil, participant, nil)])
}
case .webView:
break
}
}
}
}