From f13480fabb2d3dd106f3f16d7d7f3efd830a9780 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Sat, 31 May 2025 15:38:46 +1200 Subject: [PATCH] State used in trending and home page --- materialious/electron/package-lock.json | 4 +-- materialious/src/routes/(app)/+page.ts | 25 +++++++++++++------ .../src/routes/(app)/trending/+page.ts | 20 ++++++++++----- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 3effef41..d1622245 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.8.7", + "version": "1.8.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.8.7", + "version": "1.8.8", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/src/routes/(app)/+page.ts b/materialious/src/routes/(app)/+page.ts index ab438cfb..5045ff65 100644 --- a/materialious/src/routes/(app)/+page.ts +++ b/materialious/src/routes/(app)/+page.ts @@ -1,19 +1,28 @@ import { getPopular } from '$lib/api/index'; +import { feedCacheStore } from '$lib/store'; import { error } from '@sveltejs/kit'; +import { get } from 'svelte/store'; export async function load() { - let popular = undefined; + let popular = get(feedCacheStore).popular; let popularDisabled: boolean = false; - try { - popular = await getPopular(); - } catch (errorMessage: any) { - if (errorMessage.toString() === 'Error: Administrator has disabled this endpoint.') { - popularDisabled = true; - } else { - error(500, errorMessage); + if (!popular) { + try { + popular = await getPopular(); + } catch (errorMessage: any) { + if (errorMessage.toString() === 'Error: Administrator has disabled this endpoint.') { + popularDisabled = true; + } else { + error(500, errorMessage); + } } + + feedCacheStore.set({ popular }); + } else { + getPopular().then((newPopular) => feedCacheStore.set({ popular: newPopular })); } + return { popular: popular, popularDisabled: popularDisabled diff --git a/materialious/src/routes/(app)/trending/+page.ts b/materialious/src/routes/(app)/trending/+page.ts index 1831eff0..5e032f8e 100644 --- a/materialious/src/routes/(app)/trending/+page.ts +++ b/materialious/src/routes/(app)/trending/+page.ts @@ -1,13 +1,21 @@ import { getTrending } from '$lib/api/index'; -import type { Video } from '$lib/api/model'; +import { feedCacheStore } from '$lib/store'; import { error } from '@sveltejs/kit'; +import { get } from 'svelte/store'; export async function load() { - let trending: Video[]; - try { - trending = await getTrending(); - } catch (errorMessage: any) { - error(500, errorMessage); + let trending = get(feedCacheStore).trending; + + if (!trending) { + try { + trending = await getTrending(); + } catch (errorMessage: any) { + error(500, errorMessage); + } + + feedCacheStore.set({ trending }); + } else { + getTrending().then((newTrending) => feedCacheStore.set({ trending: newTrending })); } return { trending: trending };