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