123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { Component } from "@angular/core";
- import {
- IonicPage,
- NavController,
- NavParams,
- Refresher,
- InfiniteScroll,
- Events
- } from "ionic-angular";
- import { TwitterApiProvider } from "../../providers/twitter-api/twitter-api";
- @IonicPage()
- @Component({
- selector: "page-search-results-tweets-recent",
- templateUrl: "search-results-tweets-recent.html"
- })
- export class SearchResultsTweetsRecentPage {
- query: string;
- tweets = [];
- constructor(
- public navCtrl: NavController,
- public navParams: NavParams,
- private twitter: TwitterApiProvider,
- private events: Events
- ) {
- this.query = this.navParams.data;
- this.events.subscribe("query:changed", query => {
- if (query.length) {
- this.twitter.searchRecentTweets(query).then(res => (this.tweets = res));
- this.query = query;
- }
- });
- }
- async ionViewDidLoad() {
- if (this.query.length) {
- this.tweets = await this.twitter.searchRecentTweets(this.query);
- }
- }
- doRefresh(refresher: Refresher) {
- this.twitter.searchRecentTweets(this.query).then(tweets => {
- this.tweets = tweets;
- refresher.complete();
- });
- }
- loadMore(infiniteScroll: InfiniteScroll) {
- this.twitter
- .searchRecentTweets(this.query, this.oldestTweet)
- .then(tweets => {
- this.tweets["statuses"] = this.tweets["statuses"].concat(
- tweets["statuses"]
- );
- infiniteScroll.complete();
- });
- }
- get oldestTweet() {
- if (this.tweets.length > 0) {
- return this.tweets.reduce((acc, cur) => (acc.id < cur.id ? acc : cur))[
- "id_str"
- ];
- } else {
- return undefined;
- }
- }
- get enableRefresh() {
- return this.query.length > 0;
- }
- get enableInfiniteScroll() {
- return this.query.length > 0;
- }
- }
|