include mentions, bookmarks, and logout button
This commit is contained in:
parent
4bbff3cf8a
commit
cd65ed97cd
3 changed files with 50 additions and 11 deletions
|
@ -26,8 +26,11 @@ export class MyApp {
|
||||||
|
|
||||||
// used for an example of ngFor and navigation
|
// used for an example of ngFor and navigation
|
||||||
this.pages = [
|
this.pages = [
|
||||||
{ title: 'Personal Stream', component: StreamPage, params: {stream: 'personal'} },
|
{ title: 'Timeline', component: StreamPage, params: {stream: 'personal'} },
|
||||||
{ title: 'Global Stream', component: StreamPage, params: {stream: 'global'} },
|
{ title: 'Global', component: StreamPage, params: {stream: 'global'} },
|
||||||
|
{ title: 'Mentions', component: StreamPage, params: {stream: 'mentions'} },
|
||||||
|
{ title: 'Bookmarks', component: StreamPage, params: {stream: 'bookmarks'} },
|
||||||
|
{ title: 'Logout', component: {}, params: {}},
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -61,7 +64,12 @@ export class MyApp {
|
||||||
openPage(page) {
|
openPage(page) {
|
||||||
// Reset the content nav to have just this page
|
// Reset the content nav to have just this page
|
||||||
// we wouldn't want the back button to show in this scenario
|
// we wouldn't want the back button to show in this scenario
|
||||||
this.nav.setRoot(page.component, page.params);
|
if (page.title === 'Logout') {
|
||||||
|
this.storage.remove('token');
|
||||||
|
this.nav.setRoot(LoginPage);
|
||||||
|
} else {
|
||||||
|
this.nav.setRoot(page.component, page.params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,11 +79,6 @@
|
||||||
<div *ngIf="post.counts.replies > 0">{{ post.counts.replies }}</div>
|
<div *ngIf="post.counts.replies > 0">{{ post.counts.replies }}</div>
|
||||||
</button>
|
</button>
|
||||||
</ion-col>
|
</ion-col>
|
||||||
<!-- <ion-col>
|
|
||||||
<button ion-button icon-left clear small block>
|
|
||||||
<ion-icon name="more"></ion-icon>
|
|
||||||
</button>
|
|
||||||
</ion-col> -->
|
|
||||||
</ion-row>
|
</ion-row>
|
||||||
</ion-card>
|
</ion-card>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
|
@ -21,6 +21,7 @@ export class StreamPage {
|
||||||
since_id: string;
|
since_id: string;
|
||||||
before_id: string;
|
before_id: string;
|
||||||
fetcher: any;
|
fetcher: any;
|
||||||
|
fcaller: any;
|
||||||
myUsername: string;
|
myUsername: string;
|
||||||
|
|
||||||
constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController) {
|
constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController) {
|
||||||
|
@ -32,10 +33,20 @@ export class StreamPage {
|
||||||
this.fetchPosts();
|
this.fetchPosts();
|
||||||
break;
|
break;
|
||||||
case 'personal':
|
case 'personal':
|
||||||
this.title = 'Home';
|
this.title = 'Timeline';
|
||||||
this.fetcher = pnut.personal;
|
this.fetcher = pnut.personal;
|
||||||
this.fetchPosts();
|
this.fetchPosts();
|
||||||
break;
|
break;
|
||||||
|
case 'mentions':
|
||||||
|
this.title = 'Mentions';
|
||||||
|
this.fetcher = pnut.mentions;
|
||||||
|
this.fetchMyPosts();
|
||||||
|
break;
|
||||||
|
case 'bookmarks':
|
||||||
|
this.title = 'Bookmarks';
|
||||||
|
this.fetcher = pnut.bookmarks;
|
||||||
|
this.fetchMyPosts();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
pnut.user('me').then(res => {
|
pnut.user('me').then(res => {
|
||||||
this.myUsername = res.data.username;
|
this.myUsername = res.data.username;
|
||||||
|
@ -45,7 +56,13 @@ export class StreamPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchOlderPosts(infiniteScroll) {
|
fetchOlderPosts(infiniteScroll) {
|
||||||
this.fetcher({include_raw: 1, before_id: this.before_id, count: 40}).then(res => {
|
let params = {include_raw: 1, before_id: this.before_id, count: 40};
|
||||||
|
if (this.title === 'Mentions') {
|
||||||
|
this.fcaller = this.fetcher('me', params);
|
||||||
|
} else {
|
||||||
|
this.fcaller = this.fetcher(params);
|
||||||
|
}
|
||||||
|
this.fcaller.then(res => {
|
||||||
if (res.data.length > 0) {
|
if (res.data.length > 0) {
|
||||||
this.posts.push.apply(this.posts, res.data);
|
this.posts.push.apply(this.posts, res.data);
|
||||||
this.before_id = res.meta.min_id;
|
this.before_id = res.meta.min_id;
|
||||||
|
@ -59,7 +76,13 @@ export class StreamPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchNewerPosts(refresher) {
|
fetchNewerPosts(refresher) {
|
||||||
this.fetcher({include_raw: 1, since_id: this.since_id, count: 40}).then(res => {
|
let params = {include_raw: 1, since_id: this.since_id, count: 40};
|
||||||
|
if (this.title === 'Mentions') {
|
||||||
|
this.fcaller = this.fetcher('me', params);
|
||||||
|
} else {
|
||||||
|
this.fcaller = this.fetcher(params);
|
||||||
|
}
|
||||||
|
this.fcaller.then(res => {
|
||||||
if (res.data.length > 0) {
|
if (res.data.length > 0) {
|
||||||
Array.prototype.unshift.apply(this.posts, res.data);
|
Array.prototype.unshift.apply(this.posts, res.data);
|
||||||
this.since_id = res.meta.max_id;
|
this.since_id = res.meta.max_id;
|
||||||
|
@ -93,6 +116,19 @@ export class StreamPage {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fetchMyPosts() {
|
||||||
|
console.log('-- fetching mentions --');
|
||||||
|
this.fetcher('me', {include_raw: 1, count: 40}).then(res => {
|
||||||
|
this.posts = res.data;
|
||||||
|
this.since_id = res.meta.max_id;
|
||||||
|
this.before_id = res.meta.min_id;
|
||||||
|
console.log('since_id: ' + this.since_id);
|
||||||
|
console.log('before_id: ' + this.before_id);
|
||||||
|
}).catch(err => {
|
||||||
|
console.log(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
bookmark(postid, bookmarked) {
|
bookmark(postid, bookmarked) {
|
||||||
if (bookmarked) {
|
if (bookmarked) {
|
||||||
pnut.deleteBookmark(postid).then(res => {
|
pnut.deleteBookmark(postid).then(res => {
|
||||||
|
|
Reference in a new issue