search-results-users.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { Component } from "@angular/core";
  2. import {
  3. IonicPage,
  4. NavController,
  5. NavParams,
  6. Refresher,
  7. InfiniteScroll,
  8. App
  9. } from "ionic-angular";
  10. import { TwitterApiProvider } from "../../providers/twitter-api/twitter-api";
  11. import { ProfilePage } from "../profile/profile";
  12. @IonicPage()
  13. @Component({
  14. selector: "page-search-results-users",
  15. templateUrl: "search-results-users.html"
  16. })
  17. export class SearchResultsUsersPage {
  18. keyword: string;
  19. nextPage: number = 2;
  20. users: any[] = [];
  21. constructor(
  22. public navCtrl: NavController,
  23. public navParams: NavParams,
  24. private appCtrl: App,
  25. private twitter: TwitterApiProvider
  26. ) {
  27. this.keyword = navParams.data;
  28. }
  29. async ionViewDidLoad() {
  30. if (this.keyword.length) {
  31. this.users = await this.twitter.searchUsers(this.keyword);
  32. }
  33. }
  34. showProfile(userId) {
  35. this.appCtrl.getRootNav().push(ProfilePage, { userId });
  36. this.nextPage = 2;
  37. }
  38. doRefresh(refresher: Refresher) {
  39. this.twitter.searchUsers(this.keyword).then(users => {
  40. this.users = users;
  41. this.nextPage = 2;
  42. refresher.complete();
  43. });
  44. }
  45. loadMore(infiniteScroll: InfiniteScroll) {
  46. this.twitter.searchUsers(this.keyword, this.nextPage).then(users => {
  47. this.users = this.users.concat(users);
  48. infiniteScroll.complete();
  49. this.nextPage = this.nextPage + 1;
  50. });
  51. }
  52. }