diff --git a/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchHeaderView.swift b/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchHeaderView.swift index 5eb70b2d57..f644aec524 100644 --- a/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchHeaderView.swift +++ b/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchHeaderView.swift @@ -217,7 +217,7 @@ public final class EmojiSearchHeaderView: UIView, UITextFieldDelegate { if let textField = self.textField, let text = textField.text, text.isEmpty { if self.bounds.contains(point), let placeholderContentView = self.placeholderContent.view as? EmojiSearchSearchBarComponent.View { let leftTextPosition = placeholderContentView.leftTextPosition() - if point.x >= 0.0 && point.x <= placeholderContentView.frame.minX + leftTextPosition { + if point.x >= placeholderContentView.frame.minX + leftTextPosition { if let result = placeholderContentView.hitTest(self.convert(point, to: placeholderContentView), with: event) { return result } @@ -278,9 +278,6 @@ public final class EmojiSearchHeaderView: UIView, UITextFieldDelegate { textField.resignFirstResponder() textField.removeFromSuperview() } - - /*self.tintTextView.view?.isHidden = false - self.textView.view?.isHidden = false*/ } @objc private func clearPressed() { @@ -519,8 +516,20 @@ public final class EmojiSearchHeaderView: UIView, UITextFieldDelegate { if let term { self.update(transition: ComponentTransition(animation: .curve(duration: 0.4, curve: .spring))) + let textField = self.textField + self.textField = nil + + self.clearIconView.isHidden = true + self.clearIconTintView.isHidden = true + self.clearIconButton.isHidden = true + self.updateQuery(.category(value: term)) self.activated(false) + + if let textField { + textField.resignFirstResponder() + textField.removeFromSuperview() + } } else { self.deactivated(self.textField?.isFirstResponder ?? false) self.updateQuery(nil) diff --git a/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchSearchBarComponent.swift b/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchSearchBarComponent.swift index 3c53dd5497..8e9935d8be 100644 --- a/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchSearchBarComponent.swift +++ b/submodules/TelegramUI/Components/EntityKeyboard/Sources/EmojiSearchSearchBarComponent.swift @@ -267,6 +267,8 @@ final class EmojiSearchSearchBarComponent: Component { private var highlightedItem: AnyHashable? private var selectedItem: AnyHashable? + private var disableInteraction: Bool = false + private lazy var hapticFeedback: HapticFeedback = { return HapticFeedback() }() @@ -421,10 +423,16 @@ final class EmojiSearchSearchBarComponent: Component { } override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - guard let component = self.component else { + if self.disableInteraction { + for (_, itemView) in self.visibleItemViews { + if let itemComponentView = itemView.view.view { + if itemComponentView.bounds.contains(self.convert(point, to: itemComponentView)) { + return self + } + } + } return nil } - let _ = component return super.hitTest(point, with: event) } @@ -714,10 +722,17 @@ final class EmojiSearchSearchBarComponent: Component { switch component.textInputState { case let .active(hasText): - self.isUserInteractionEnabled = false + if hasText { + self.disableInteraction = false + self.isUserInteractionEnabled = false + } else { + self.disableInteraction = true + self.isUserInteractionEnabled = true + } self.textView.view?.isHidden = hasText self.tintTextView.view?.isHidden = hasText case .inactive: + self.disableInteraction = false self.isUserInteractionEnabled = true self.textView.view?.isHidden = false self.tintTextView.view?.isHidden = false