diff --git a/submodules/PeerInfoUI/Sources/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift index dacc20697c..2dbbed8ef1 100644 --- a/submodules/PeerInfoUI/Sources/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -1300,6 +1300,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: var removePeerChatImpl: ((Peer, Bool) -> Void)? var errorImpl: (() -> Void)? var clearHighlightImpl: (() -> Void)? + var dismissInputImpl: (() -> Void)? let actionsDisposable = DisposableSet() @@ -2264,6 +2265,8 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: } }, pushController: { c in pushControllerImpl?(c) + }, dismissInput: { + dismissInputImpl?() }) } @@ -2306,6 +2309,9 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: controller?.view.endEditing(true) controller?.present(value, in: .window(.root), with: presentationArguments, blockInteraction: true) } + dismissInputImpl = { [weak controller] in + controller?.view.endEditing(true) + } upgradedToSupergroupImpl = { [weak controller] upgradedPeerId, f in let _ = (context.account.postbox.transaction { transaction -> Peer? in return transaction.getPeer(upgradedPeerId) diff --git a/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift b/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift index 072d4ef0a2..5d98c451be 100644 --- a/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoSearchItem.swift @@ -17,19 +17,21 @@ final class ChannelMembersSearchItem: ItemListControllerSearch { let cancel: () -> Void let openPeer: (Peer, RenderedChannelParticipant?) -> Void let pushController: (ViewController) -> Void + let dismissInput: () -> Void let searchMode: ChannelMembersSearchMode private var updateActivity: ((Bool) -> Void)? private var activity: ValuePromise = ValuePromise(ignoreRepeated: false) private let activityDisposable = MetaDisposable() - init(context: AccountContext, peerId: PeerId, searchContext: GroupMembersSearchContext?, searchMode: ChannelMembersSearchMode = .searchMembers, cancel: @escaping () -> Void, openPeer: @escaping (Peer, RenderedChannelParticipant?) -> Void, pushController: @escaping (ViewController) -> Void) { + init(context: AccountContext, peerId: PeerId, searchContext: GroupMembersSearchContext?, searchMode: ChannelMembersSearchMode = .searchMembers, cancel: @escaping () -> Void, openPeer: @escaping (Peer, RenderedChannelParticipant?) -> Void, pushController: @escaping (ViewController) -> Void, dismissInput: @escaping () -> Void) { self.context = context self.peerId = peerId self.searchContext = searchContext self.cancel = cancel self.openPeer = openPeer self.pushController = pushController + self.dismissInput = dismissInput self.searchMode = searchMode activityDisposable.set((activity.get() |> mapToSignal { value -> Signal in if value { @@ -77,14 +79,14 @@ final class ChannelMembersSearchItem: ItemListControllerSearch { self?.activity.set(value) }, pushController: { [weak self] c in self?.pushController(c) - }) + }, dismissInput: self.dismissInput) } } private final class ChannelMembersSearchItemNode: ItemListControllerSearchNode { private let containerNode: ChannelMembersSearchContainerNode - init(context: AccountContext, peerId: PeerId, searchMode: ChannelMembersSearchMode, searchContext: GroupMembersSearchContext?, openPeer: @escaping (Peer, RenderedChannelParticipant?) -> Void, cancel: @escaping () -> Void, updateActivity: @escaping(Bool) -> Void, pushController: @escaping (ViewController) -> Void) { + init(context: AccountContext, peerId: PeerId, searchMode: ChannelMembersSearchMode, searchContext: GroupMembersSearchContext?, openPeer: @escaping (Peer, RenderedChannelParticipant?) -> Void, cancel: @escaping () -> Void, updateActivity: @escaping(Bool) -> Void, pushController: @escaping (ViewController) -> Void, dismissInput: @escaping () -> Void) { self.containerNode = ChannelMembersSearchContainerNode(context: context, peerId: peerId, mode: searchMode, filters: [], searchContext: searchContext, openPeer: { peer, participant in openPeer(peer, participant) }, updateActivity: updateActivity, pushController: pushController) @@ -95,6 +97,10 @@ private final class ChannelMembersSearchItemNode: ItemListControllerSearchNode { super.init() self.addSubnode(self.containerNode) + + self.containerNode.dismissInput = { + dismissInput() + } } override func queryUpdated(_ query: String) {