Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let subject: PublishSubject<Void> = PublishSubject()
- lazy private(set) var items: Observable<[Item]> = self.setupItems()
- fileprivate func setupItems() -> Observable<[Item]> {
- return self.reloadTrigger
- .asObservable()
- .debounce(0.3, scheduler: MainScheduler.instance)
- .flatMapLatest { (_) -> Observable<[Film]> in
- return API.instance.FetchItems()
- }
- .shareReplay(1)
- }
- let textSearchSubject: PublishSubject<String> = PublishSubject()
- lazy private(set) var searchItems: Observable<[Item]> = self.setupSearchItems()
- fileprivate func setupSearchItems() -> Observable<[Item]> {
- return self.textSearchTrigger
- .asObservable()
- .debounce(0.3, scheduler: MainScheduler.instance)
- .distinctUntilChanged()
- .flatMapLatest { [weak self] (query) -> Observable<[Item]> in
- return API.instance.search(withTitle: query)
- }
- .shareReplay(1)
- }
- self.items
- .bindTo(self.tableView.rx.items(cellIdentifier: "Item", cellType: UITableViewCell.self)) {
- (row, item, cell) in
- }.addDisposableTo(self.disposeBag)
- self.searchBar.rx
- .text
- .orEmpty
- .bindTo(self.textSearchSubject)
- .addDisposableTo(self.disposeBag)
- self.searchItems
- .withLatestFrom(self.searchBar.rx.text) { (items, query) -> String? in
- }.subscribe(onNext: { [unowned self] (placeholderString) in
- }).addDisposableTo(self.disposeBag)
Add Comment
Please, Sign In to add comment