diff --git a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift index b8779ae057..8b9dae2eb0 100644 --- a/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift +++ b/submodules/TelegramUI/Components/MediaEditorScreen/Sources/MediaEditorScreen.swift @@ -3836,6 +3836,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate fileprivate let context: AccountContext fileprivate let subject: Signal fileprivate let isEditingStory: Bool + fileprivate let customTarget: EnginePeer.Id? fileprivate let initialCaption: NSAttributedString? fileprivate let initialPrivacy: EngineStoryPrivacy? @@ -3859,6 +3860,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate public init( context: AccountContext, subject: Signal, + customTarget: EnginePeer.Id? = nil, isEditing: Bool, initialCaption: NSAttributedString? = nil, initialPrivacy: EngineStoryPrivacy? = nil, @@ -3870,6 +3872,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate ) { self.context = context self.subject = subject + self.customTarget = customTarget self.isEditingStory = isEditing self.initialCaption = initialCaption self.initialPrivacy = initialPrivacy @@ -3976,6 +3979,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate let controller = ShareWithPeersScreen( context: self.context, initialPrivacy: initialPrivacy, + initialSendAsPeerId: self.customTarget, allowScreenshots: !privacy.isForwardingDisabled, pin: privacy.pin, timeout: privacy.timeout, diff --git a/submodules/TelegramUI/Components/ShareWithPeersScreen/Sources/ShareWithPeersScreen.swift b/submodules/TelegramUI/Components/ShareWithPeersScreen/Sources/ShareWithPeersScreen.swift index 697cb71947..d83581210c 100644 --- a/submodules/TelegramUI/Components/ShareWithPeersScreen/Sources/ShareWithPeersScreen.swift +++ b/submodules/TelegramUI/Components/ShareWithPeersScreen/Sources/ShareWithPeersScreen.swift @@ -323,6 +323,7 @@ final class ShareWithPeersScreenComponent: Component { private var isDismissed: Bool = false private var sendAsPeerId: EnginePeer.Id? + private var isCustomTarget = false private var selectedPeers: [EnginePeer.Id] = [] private var selectedGroups: [EnginePeer.Id] = [] @@ -1039,7 +1040,7 @@ final class ShareWithPeersScreenComponent: Component { var isStories = false var accessory: PeerListItemComponent.RightAccessory if case .stories = component.stateContext.subject { - accessory = .disclosure + accessory = self.isCustomTarget ? .none : .disclosure isStories = true } else { if let selectedPeerId = self.sendAsPeerId { @@ -1070,7 +1071,9 @@ final class ShareWithPeersScreenComponent: Component { return } if isStories { - let _ = self.presentSendAsPeer() + if !self.isCustomTarget { + let _ = self.presentSendAsPeer() + } } else { if peer.id.namespace == Namespaces.Peer.CloudUser { self.component?.peerCompletion(peer.id) @@ -1114,7 +1117,7 @@ final class ShareWithPeersScreenComponent: Component { if let previousController = navigationController?.viewControllers.reversed().first(where: { $0 is ShareWithPeersScreen}) as? ShareWithPeersScreen { previousController.dismiss(completion: { [weak navigationController] in - Queue.mainQueue().justDispatch { + Queue.mainQueue().justDispatch { if let controller = navigationController?.viewControllers.last as? ViewController { controller.present(UndoOverlayController(presentationData: presentationData, content: .linkCopied(text: presentationData.strings.Conversation_LinkCopied), elevatedLayout: true, position: .top, animateInAsReplacement: false, action: { _ in return false }), in: .current) } @@ -1824,7 +1827,10 @@ final class ShareWithPeersScreenComponent: Component { let containerSideInset = floorToScreenPixels((availableSize.width - containerWidth) / 2.0) if self.component == nil { - self.sendAsPeerId = component.initialSendAsPeerId + if let sendAsPeerId = component.initialSendAsPeerId { + self.sendAsPeerId = sendAsPeerId + self.isCustomTarget = true + } switch component.initialPrivacy.base { case .everyone: diff --git a/submodules/TelegramUI/Sources/TelegramRootController.swift b/submodules/TelegramUI/Sources/TelegramRootController.swift index 98064c6b55..192e60a1ec 100644 --- a/submodules/TelegramUI/Sources/TelegramRootController.swift +++ b/submodules/TelegramUI/Sources/TelegramRootController.swift @@ -352,6 +352,7 @@ public final class TelegramRootController: NavigationController, TelegramRootCon let controller = MediaEditorScreen( context: context, subject: subject, + customTarget: customTarget, isEditing: false, transitionIn: transitionIn, transitionOut: { finished, isNew in