mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-04 21:41:45 +00:00
Fix reaction search bar click through
This commit is contained in:
parent
8069dfa73a
commit
3cb03a9666
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user