fix: make recommend trigger refresh when view appear. resolve #164

This commit is contained in:
CMK 2021-06-29 19:19:14 +08:00
parent 65a8307f50
commit bac8721aec
2 changed files with 15 additions and 5 deletions

View File

@ -151,6 +151,12 @@ extension SearchViewController {
view.bringSubviewToFront(statusBar) view.bringSubviewToFront(statusBar)
} }
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
viewModel.viewDidAppeared.send()
}
func setupSearchBar() { func setupSearchBar() {
searchBar.delegate = self searchBar.delegate = self
view.addSubview(searchBar) view.addSubview(searchBar)

View File

@ -23,6 +23,7 @@ final class SearchViewModel: NSObject {
let mastodonUser = CurrentValueSubject<MastodonUser?, Never>(nil) let mastodonUser = CurrentValueSubject<MastodonUser?, Never>(nil)
let currentMastodonUser = CurrentValueSubject<MastodonUser?, Never>(nil) let currentMastodonUser = CurrentValueSubject<MastodonUser?, Never>(nil)
let viewDidAppeared = PassthroughSubject<Void, Never>()
// output // output
let searchText = CurrentValueSubject<String, Never>("") let searchText = CurrentValueSubject<String, Never>("")
@ -145,9 +146,10 @@ final class SearchViewModel: NSObject {
dataSource.apply(snapshot, animatingDifferences: false, completion: nil) dataSource.apply(snapshot, animatingDifferences: false, completion: nil)
} }
.store(in: &disposeBag) .store(in: &disposeBag)
requestRecommendHashTags() viewDidAppeared
.receive(on: DispatchQueue.main) .compactMap { _ in self.requestRecommendHashTags() }
.receive(on: RunLoop.main)
.sink { [weak self] _ in .sink { [weak self] _ in
guard let self = self else { return } guard let self = self else { return }
if !self.recommendHashTags.isEmpty { if !self.recommendHashTags.isEmpty {
@ -160,8 +162,9 @@ final class SearchViewModel: NSObject {
} receiveValue: { _ in } receiveValue: { _ in
} }
.store(in: &disposeBag) .store(in: &disposeBag)
viewDidAppeared
requestRecommendAccountsV2() .compactMap { _ in self.requestRecommendAccountsV2() }
.receive(on: RunLoop.main)
.sink { [weak self] _ in .sink { [weak self] _ in
guard let self = self else { return } guard let self = self else { return }
if !self.recommendAccounts.isEmpty { if !self.recommendAccounts.isEmpty {
@ -172,6 +175,7 @@ final class SearchViewModel: NSObject {
.store(in: &disposeBag) .store(in: &disposeBag)
recommendAccountsFallback recommendAccountsFallback
.receive(on: RunLoop.main)
.sink { [weak self] _ in .sink { [weak self] _ in
guard let self = self else { return } guard let self = self else { return }
self.requestRecommendAccounts() self.requestRecommendAccounts()