src/components/feed-page/feed-page.tsx
tag | feed-page |
styleUrl | feed-page.css |
Properties |
Methods |
|
componentDidLoad |
componentDidLoad()
|
Defined in src/components/feed-page/feed-page.tsx:17
|
Returns :
void
|
Async getPosts |
getPosts()
|
Defined in src/components/feed-page/feed-page.tsx:21
|
Returns :
any
|
Async makeNewPost |
makeNewPost()
|
Defined in src/components/feed-page/feed-page.tsx:39
|
Returns :
any
|
render |
render()
|
Defined in src/components/feed-page/feed-page.tsx:46
|
Returns :
any
|
update |
update()
|
Decorators :
@Listen('body:ionModalDidDismiss')
|
Defined in src/components/feed-page/feed-page.tsx:35
|
Returns :
void
|
modalCtrl |
modalCtrl:
|
Type : HTMLIonModalControllerElement
|
Decorators :
@Prop({connect: 'ion-modal-controller'})
|
Defined in src/components/feed-page/feed-page.tsx:15
|
posts |
posts:
|
Type : any
|
Default value : []
|
Decorators :
@State()
|
Defined in src/components/feed-page/feed-page.tsx:13
|
import { Component, Listen, Prop, State } from '@stencil/core';
import { checkAnon } from '../../global/utils';
declare var firebase: any;
@Component({
tag: 'feed-page',
styleUrl: 'feed-page.css'
})
export class FeedPage {
@State() posts: any = [];
@Prop({ connect: 'ion-modal-controller' }) modalCtrl: HTMLIonModalControllerElement;
componentDidLoad() {
this.getPosts();
}
async getPosts() {
const tempPosts = [];
const snapshot = await firebase.firestore().collection('feed').get();
snapshot.forEach((doc) => {
tempPosts.push(doc.data());
});
console.log(tempPosts);
this.posts = tempPosts;
}
@Listen('body:ionModalDidDismiss')
update() {
this.getPosts();
}
async makeNewPost() {
const modal = await this.modalCtrl.create({
component: 'feed-page-modal'
});
await modal.present();
}
render() {
return (
<ion-page>
<profile-header>
</profile-header>
<ion-content>
<feed-list posts={this.posts}></feed-list>
{checkAnon() ? null : <ion-fab vertical='bottom' horizontal='end' slot='fixed'>
<ion-fab-button onClick={() => this.makeNewPost()}>
<ion-icon name='add'></ion-icon>
</ion-fab-button>
</ion-fab>}
</ion-content>
</ion-page>
);
}
}