diff --git a/package.json b/package.json index c8e971d..11df13e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@yusurko/vigil", "private": true, - "version": "0.1.0-dev37", + "version": "0.1.0-dev40", "type": "module", "scripts": { "dev": "vite dev", diff --git a/src/lib/HomeMenu.svelte b/src/lib/HomeMenu.svelte new file mode 100644 index 0000000..6f2baa4 --- /dev/null +++ b/src/lib/HomeMenu.svelte @@ -0,0 +1,10 @@ + + + diff --git a/src/lib/UserAbout.svelte b/src/lib/UserAbout.svelte index e050fba..b6df1f0 100644 --- a/src/lib/UserAbout.svelte +++ b/src/lib/UserAbout.svelte @@ -1,7 +1,7 @@ {#if me} - + - {#snippet left()} - ... - {/snippet} + {#snippet left()} + + {/snippet} - {#snippet right()} - ... - {/snippet} + {#snippet right()} + {#if top_guilds} + +
    + {#each top_guilds as gu} +
  • + +{gu.name} - + {gu.post_count ?? 0} posts - + {gu.subscriber_count ?? 0} subscribers +
  • + {/each} +
+
+ {/if} + {/snippet}
{:else} -

{appName()} is a social media platform made by people like you.
- Log in or (sign up) to see {activePostCount()} posts and talk with {activeUserCount()} users right now!

+

{appName()} is a social media platform made by people like you.
+ Log in or (sign up) to see {activePostCount()} posts and talk with {activeUserCount()} users right now!

{/if} diff --git a/src/routes/+page.ts b/src/routes/+page.ts index 0d51905..a1f2924 100644 --- a/src/routes/+page.ts +++ b/src/routes/+page.ts @@ -1,4 +1,4 @@ -import { backend, type PostEntry } from '$lib/backend.js'; +import { backend, type GuildEntry, type PostEntry } from '$lib/backend.js'; import { getMe } from '$lib/globals.svelte.js'; import type { LoadEvent } from '@sveltejs/kit'; @@ -19,16 +19,35 @@ async function loadFeed (event: LoadEvent): Promise { } catch (e) { return null; } - } -export async function load(event): Promise<{feed: PostEntry[] | null}> { +async function loadTopGuilds (event: LoadEvent): Promise { + const resp = await backend.withEvent(event).fetch('top/guilds'); + + if ([200].indexOf(resp.status) < 0) { + console.error(`fetch top_guilds returned status ${resp.status}`); + return null; + } + try { + const respJ = await resp.json(); + + const { has: top_guilds } : { has: GuildEntry[] } = respJ; + console.log('top_guilds is', top_guilds); + return top_guilds; + } catch (e) { + return null; + } +} + +export async function load(event): Promise<{feed: PostEntry[] | null, top_guilds?: GuildEntry[] | null}> { let feed = null; let me = getMe(); + let top_guilds = null; if (me) { feed = await loadFeed(event); + top_guilds = await loadTopGuilds(event); } - return { feed }; + return { feed, top_guilds }; } \ No newline at end of file