Swiftgram/TelegramUI/WebSearchNavigationContentNode.swift
2018-12-07 23:01:02 +04:00

65 lines
1.9 KiB
Swift

import Foundation
import AsyncDisplayKit
import Display
import Postbox
import TelegramCore
private let searchBarFont = Font.regular(14.0)
final class WebSearchNavigationContentNode: NavigationBarContentNode {
private let theme: PresentationTheme
private let strings: PresentationStrings
private let searchBar: SearchBarNode
private var queryUpdated: ((String) -> Void)?
init(theme: PresentationTheme, strings: PresentationStrings) {
self.theme = theme
self.strings = strings
self.searchBar = SearchBarNode(theme: SearchBarNodeTheme(theme: theme, active: false), strings: strings)
self.searchBar.hasCancelButton = false
self.searchBar.placeholderString = NSAttributedString(string: strings.Common_Search, font: searchBarFont, textColor: theme.rootController.activeNavigationSearchBar.inputPlaceholderTextColor)
super.init()
self.addSubnode(self.searchBar)
self.searchBar.textReturned = { [weak self] query in
self?.queryUpdated?(query)
}
self.searchBar.textUpdated = { [weak self] query in
if query.isEmpty {
self?.queryUpdated?(query)
}
}
}
func setQueryUpdated(_ f: @escaping (String) -> Void) {
self.queryUpdated = f
}
func setActivity(_ activity: Bool) {
self.searchBar.activity = activity
}
override func layout() {
super.layout()
let size = self.bounds.size
let searchBarFrame = CGRect(origin: CGPoint(), size: size)
self.searchBar.frame = searchBarFrame
self.searchBar.updateLayout(boundingSize: size, leftInset: 0.0, rightInset: 0.0, transition: .immediate)
}
func activate() {
self.searchBar.activate()
}
func deactivate() {
self.searchBar.deactivate(clear: false)
}
}