home.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { Component } from "@angular/core";
  2. import {
  3. IonicPage,
  4. NavController,
  5. MenuController,
  6. InfiniteScroll,
  7. Refresher,
  8. LoadingController
  9. } from "ionic-angular";
  10. import { WriteTweetPage } from "../write-tweet/write-tweet";
  11. import { FeedProvider } from "../../providers/feed/feed";
  12. @IonicPage()
  13. @Component({
  14. selector: "page-home",
  15. templateUrl: "home.html"
  16. })
  17. export class HomePage {
  18. menuController: MenuController;
  19. tweets;
  20. constructor(
  21. public navCtrl: NavController,
  22. private menuCtrl: MenuController,
  23. private feed: FeedProvider,
  24. private loadingCtrl: LoadingController
  25. ) {}
  26. ionViewDidLoad() {
  27. this.menuCtrl.enable(true, "sideNav");
  28. }
  29. ionViewDidEnter() {
  30. const loading = this.loadingCtrl.create();
  31. // loading.present();
  32. loading.dismiss();
  33. // this.feed
  34. // .loadHomeTimeline()
  35. // .then(tweets => (this.tweets = tweets))
  36. // .catch(err => console.error(err))
  37. // .then(() => loading.dismiss());
  38. }
  39. doRefresh(refresher: Refresher) {
  40. // this.feed.loadHomeTimeline().then(tweets => {
  41. // this.tweets = tweets;
  42. // refresher.complete();
  43. // });
  44. }
  45. loadMore(infiniteScroll: InfiniteScroll) {
  46. // this.feed
  47. // .loadHomeTimeline(this.oldestPublicTweet, this.oldestPrivateTweet)
  48. // .then(tweets => {
  49. // this.tweets = this.tweets.concat(tweets);
  50. // infiniteScroll.complete();
  51. // });
  52. }
  53. writeTweet() {
  54. this.navCtrl.push(WriteTweetPage);
  55. }
  56. get publicTweets() {
  57. return null;
  58. // return this.tweets.filter(tweet => !tweet.private_tweet);
  59. }
  60. get privateTweets() {
  61. return this.tweets.filter(tweet => tweet.private_tweet);
  62. }
  63. get oldestPublicTweet() {
  64. return null;
  65. // if (this.publicTweets.length > 0) {
  66. // return this.publicTweets.reduce((acc, cur) =>
  67. // acc.id < cur.id ? acc : cur
  68. // );
  69. // } else {
  70. // return undefined;
  71. // }
  72. }
  73. get oldestPrivateTweet() {
  74. if (this.privateTweets.length > 0) {
  75. return this.privateTweets.reduce((acc, cur) =>
  76. new Date(acc.created_at) < new Date(cur.created_at) ? acc : cur
  77. );
  78. } else {
  79. return undefined;
  80. }
  81. }
  82. }