From b94c1c2e14483e201994479ed63c8bf8fd2f3488 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 13 Feb 2024 09:28:42 -0800 Subject: feat(group): group page from groups --- src/lib/Database/groups.ts | 6 +- src/routes/events/group/[group]/+page.server.ts | 5 + src/routes/events/group/[group]/+page.svelte | 132 ++++++++++++++++++++++++ src/routes/events/groups/+page.svelte | 82 ++++++++------- 4 files changed, 182 insertions(+), 43 deletions(-) create mode 100644 src/routes/events/group/[group]/+page.server.ts create mode 100644 src/routes/events/group/[group]/+page.svelte diff --git a/src/lib/Database/groups.ts b/src/lib/Database/groups.ts index e3e392b8..097d6f89 100644 --- a/src/lib/Database/groups.ts +++ b/src/lib/Database/groups.ts @@ -24,9 +24,9 @@ export const getGroups = async () => { }; export const getGroup = async (slug: string) => { - const { data, error } = await supabase.from('groups').select('*').eq('slug', slug); + const { data, error } = await supabase.from('groups').select('*').eq('anilist_username', slug); - if (error) return []; + if (error || data.length === 0) return null; - return data as Group[]; + return data[0] as Group; }; diff --git a/src/routes/events/group/[group]/+page.server.ts b/src/routes/events/group/[group]/+page.server.ts new file mode 100644 index 00000000..b4094b4f --- /dev/null +++ b/src/routes/events/group/[group]/+page.server.ts @@ -0,0 +1,5 @@ +export const load = ({ params }) => { + return { + group: params.group + }; +}; diff --git a/src/routes/events/group/[group]/+page.svelte b/src/routes/events/group/[group]/+page.svelte new file mode 100644 index 00000000..5a36a755 --- /dev/null +++ b/src/routes/events/group/[group]/+page.svelte @@ -0,0 +1,132 @@ + + +{#await groupsResponse} + +{:then group} + {#if group} + {#await group.json()} + + {:then json} + {#if json === null} + + This group may not exist. Please + location.reload()}>try again later. + + {:else} + {@const group = asGroup(json)} + +
+ {#if group} + + {/if} + +
+
+ + + +
+ +
+

+ + @{group.name} + + {#if group && group.badge} + ‌ + + {/if} +

+ +

+ {group.description} +

+
+
+
+ {/if} + {:catch} + + Error parsing group. Please + location.reload()}>try again later. + + {/await} + {:else} + + {/if} +{:catch} + + Error loading group. Please + location.reload()}>try again later. + +{/await} + + diff --git a/src/routes/events/groups/+page.svelte b/src/routes/events/groups/+page.svelte index b52407f0..44d69cb0 100644 --- a/src/routes/events/groups/+page.svelte +++ b/src/routes/events/groups/+page.svelte @@ -25,53 +25,55 @@ {#each json as rawGroup} {@const group = asGroup(rawGroup)} -
- {#if group} - - {/if} + +
+ {#if group} + + {/if} -
- - -
-

- - @{group.name} +

+
+ + - {#if group && group.badge} - ‌ - - {/if} -

+ @{group.name} +
+ {#if group && group.badge} + ‌ + + {/if} +

-

- {group.description} -

+

+ {group.description} +

+
-
+ {/each} {:catch} -- cgit v1.2.3