mirror of
https://github.com/mastodon/mastodon-ios
synced 2025-04-11 22:58:02 +02:00
Merge pull request #489 from j-f1/drop-text-in-search
Add support for entering text to search via drag-and-drop
This commit is contained in:
commit
9704083adc
@ -166,7 +166,7 @@ extension RootSplitViewController: ContentSplitViewControllerDelegate {
|
||||
}
|
||||
guard let navigationController = searchViewController.navigationController else { return }
|
||||
if navigationController.viewControllers.count == 1 {
|
||||
searchViewController.searchBarTapPublisher.send()
|
||||
searchViewController.searchBarTapPublisher.send("")
|
||||
} else {
|
||||
navigationController.popToRootViewController(animated: true)
|
||||
}
|
||||
|
@ -47,7 +47,8 @@ final class SearchViewController: UIViewController, NeedsDependency {
|
||||
// return collectionView
|
||||
// }()
|
||||
|
||||
let searchBarTapPublisher = PassthroughSubject<Void, Never>()
|
||||
// value is the initial search text to set
|
||||
let searchBarTapPublisher = PassthroughSubject<String, Never>()
|
||||
|
||||
private(set) lazy var discoveryViewController: DiscoveryViewController? = {
|
||||
guard let authContext = viewModel.authContext else { return nil }
|
||||
@ -148,11 +149,11 @@ extension SearchViewController {
|
||||
|
||||
searchBarTapPublisher
|
||||
.throttle(for: 0.5, scheduler: DispatchQueue.main, latest: false)
|
||||
.sink { [weak self] in
|
||||
.sink { [weak self] initialText in
|
||||
guard let self = self else { return }
|
||||
// push to search detail
|
||||
guard let authContext = self.viewModel.authContext else { return }
|
||||
let searchDetailViewModel = SearchDetailViewModel(authContext: authContext)
|
||||
let searchDetailViewModel = SearchDetailViewModel(authContext: authContext, initialSearchText: initialText)
|
||||
searchDetailViewModel.needsBecomeFirstResponder = true
|
||||
self.navigationController?.delegate = self.searchTransitionController
|
||||
// FIXME:
|
||||
@ -169,9 +170,13 @@ extension SearchViewController {
|
||||
extension SearchViewController: UISearchBarDelegate {
|
||||
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
|
||||
os_log("%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
|
||||
searchBarTapPublisher.send()
|
||||
searchBarTapPublisher.send("")
|
||||
return false
|
||||
}
|
||||
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
|
||||
searchBar.text = ""
|
||||
searchBarTapPublisher.send(searchText)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UISearchControllerDelegate
|
||||
|
@ -302,6 +302,7 @@ extension SearchDetailViewController {
|
||||
searchController.searchBar.sizeToFit()
|
||||
}
|
||||
|
||||
searchBar.text = viewModel.searchText.value
|
||||
searchBar.delegate = self
|
||||
}
|
||||
|
||||
|
@ -196,7 +196,7 @@ extension SceneDelegate {
|
||||
logger.debug("\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): select search tab")
|
||||
|
||||
if let searchViewController = coordinator?.tabBarController.topMost as? SearchViewController {
|
||||
searchViewController.searchBarTapPublisher.send()
|
||||
searchViewController.searchBarTapPublisher.send("")
|
||||
logger.debug("\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public): trigger search")
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user