From dce321c77a1a36b462efad1f6ba9403bb8126370 Mon Sep 17 00:00:00 2001 From: isaac <> Date: Thu, 28 May 2026 17:23:58 +0200 Subject: [PATCH] Fix build --- .../Sources/JoinLinkPreviewController.swift | 4 ++-- .../JoinSubjectScreen/Sources/JoinSubjectScreen.swift | 4 ++-- submodules/TelegramUI/Sources/ChatController.swift | 5 +++-- .../PeerChannelMemberCategoriesContextsManager.swift | 11 +++++++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift index 5b23c18ed4..3eed8b32db 100644 --- a/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift +++ b/submodules/JoinLinkPreviewUI/Sources/JoinLinkPreviewController.swift @@ -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) } } diff --git a/submodules/TelegramUI/Components/JoinSubjectScreen/Sources/JoinSubjectScreen.swift b/submodules/TelegramUI/Components/JoinSubjectScreen/Sources/JoinSubjectScreen.swift index 8153b4a429..c3b13d0b63 100644 --- a/submodules/TelegramUI/Components/JoinSubjectScreen/Sources/JoinSubjectScreen.swift +++ b/submodules/TelegramUI/Components/JoinSubjectScreen/Sources/JoinSubjectScreen.swift @@ -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) } } diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 072e45985b..b2fe984711 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -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 diff --git a/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift b/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift index 5df3fb288a..e4502acd6d 100644 --- a/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift +++ b/submodules/TemporaryCachedPeerDataManager/Sources/PeerChannelMemberCategoriesContextsManager.swift @@ -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 + } } } }