diff options
Diffstat (limited to 'src/services/news.ts')
| -rw-r--r-- | src/services/news.ts | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/services/news.ts b/src/services/news.ts index 3d56186..8db280a 100644 --- a/src/services/news.ts +++ b/src/services/news.ts @@ -106,6 +106,13 @@ export default class News extends GObject.Object { } this.notify("articles"); + this.updateCategories(); + + this.#loading = false; + this.notify("loading"); + } + + updateCategories() { this.#categories = {}; for (const article of this.#articles) { for (const category of article.category) { @@ -114,14 +121,20 @@ export default class News extends GObject.Object { } } this.notify("categories"); - - this.#loading = false; - this.notify("loading"); } constructor() { super(); + if (GLib.file_test(this.#cachePath, GLib.FileTest.EXISTS)) + readFileAsync(this.#cachePath) + .then(data => { + this.#articles = JSON.parse(data); + this.notify("articles"); + this.updateCategories(); + }) + .catch(console.error); + this.getNews().catch(console.error); config.apiKey.subscribe(() => this.getNews().catch(console.error)); config.countries.subscribe(() => this.getNews().catch(console.error)); |