diff --git a/src/app/modules/news/page/news-page.component.ts b/src/app/modules/news/page/news-page.component.ts index 5aeca01b..6edcb9c7 100644 --- a/src/app/modules/news/page/news-page.component.ts +++ b/src/app/modules/news/page/news-page.component.ts @@ -13,6 +13,7 @@ * this program. If not, see . */ import {Component} from '@angular/core'; +import {IonRefresher} from '@ionic/angular'; import {SCMessage} from '@openstapps/core'; import {NewsProvider} from '../news.provider'; /** @@ -26,16 +27,38 @@ export class NewsPageComponent { /** * News (messages) to show */ - news: SCMessage[]; + news: SCMessage[] = []; constructor(private newsProvider: NewsProvider) { } /** - * Initialize the local variables on component initialization + * Fetch news from the backend */ - async ngOnInit() { + async fetchNews() { /* tslint:disable:no-magic-numbers */ this.news = await this.newsProvider.getList(30, true); } + + /** + * Initialize the local variables on component initialization + */ + ngOnInit() { + void this.fetchNews(); + } + + /** + * Updates the shown list + * + * @param refresher Refresher component that triggers the update + */ + async refresh(refresher: IonRefresher) { + try { + await this.fetchNews(); + } catch (e) { + this.news = []; + } finally { + await refresher.complete(); + } + } } diff --git a/src/app/modules/news/page/news-page.html b/src/app/modules/news/page/news-page.html index 30585b05..38596c37 100644 --- a/src/app/modules/news/page/news-page.html +++ b/src/app/modules/news/page/news-page.html @@ -10,13 +10,18 @@ + + + + - + - +