Guest User

Untitled

a guest
Dec 11th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. let subject: PublishSubject<Void> = PublishSubject()
  2. lazy private(set) var items: Observable<[Item]> = self.setupItems()
  3.  
  4. fileprivate func setupItems() -> Observable<[Item]> {
  5. return self.reloadTrigger
  6. .asObservable()
  7. .debounce(0.3, scheduler: MainScheduler.instance)
  8. .flatMapLatest { (_) -> Observable<[Film]> in
  9. return API.instance.FetchItems()
  10. }
  11. .shareReplay(1)
  12. }
  13.  
  14. let textSearchSubject: PublishSubject<String> = PublishSubject()
  15. lazy private(set) var searchItems: Observable<[Item]> = self.setupSearchItems()
  16.  
  17. fileprivate func setupSearchItems() -> Observable<[Item]> {
  18. return self.textSearchTrigger
  19. .asObservable()
  20. .debounce(0.3, scheduler: MainScheduler.instance)
  21. .distinctUntilChanged()
  22. .flatMapLatest { [weak self] (query) -> Observable<[Item]> in
  23. return API.instance.search(withTitle: query)
  24. }
  25. .shareReplay(1)
  26. }
  27.  
  28. self.items
  29. .bindTo(self.tableView.rx.items(cellIdentifier: "Item", cellType: UITableViewCell.self)) {
  30. (row, item, cell) in
  31.  
  32. }.addDisposableTo(self.disposeBag)
  33.  
  34.  
  35. self.searchBar.rx
  36. .text
  37. .orEmpty
  38. .bindTo(self.textSearchSubject)
  39. .addDisposableTo(self.disposeBag)
  40.  
  41.  
  42. self.searchItems
  43. .withLatestFrom(self.searchBar.rx.text) { (items, query) -> String? in
  44.  
  45. }.subscribe(onNext: { [unowned self] (placeholderString) in
  46.  
  47. }).addDisposableTo(self.disposeBag)
Add Comment
Please, Sign In to add comment