Hashtag search improvements

This commit is contained in:
Ilya Laktyushin
2024-10-23 15:53:21 +04:00
parent 04b25d7152
commit 4806840989
21 changed files with 304 additions and 60 deletions

View File

@@ -10,7 +10,7 @@ private func inputQueryResultPriority(_ result: ChatPresentationInputQueryResult
switch result {
case let .stickers(items):
return (0, !items.isEmpty)
case let .hashtags(items):
case let .hashtags(items, _):
return (1, !items.isEmpty)
case let .mentions(items):
return (2, !items.isEmpty)
@@ -98,15 +98,19 @@ func inputContextPanelForChatPresentationIntefaceState(_ chatPresentationInterfa
return panel
}
}
case let .hashtags(results):
if !results.isEmpty {
case let .hashtags(results, query):
var peer: EnginePeer?
if let chatPeer = chatPresentationInterfaceState.renderedPeer?.peer as? TelegramChannel, chatPeer.addressName != nil {
peer = EnginePeer(chatPeer)
}
if !results.isEmpty || (peer != nil && query.count >= 4) {
if let currentPanel = currentPanel as? HashtagChatInputContextPanelNode {
currentPanel.updateResults(results)
currentPanel.updateResults(results, query: query, peer: peer)
return currentPanel
} else {
let panel = HashtagChatInputContextPanelNode(context: context, theme: chatPresentationInterfaceState.theme, strings: chatPresentationInterfaceState.strings, fontSize: chatPresentationInterfaceState.fontSize, chatPresentationContext: controllerInteraction.presentationContext)
panel.interfaceInteraction = interfaceInteraction
panel.updateResults(results)
panel.updateResults(results, query: query, peer: peer)
return panel
}
}