feat: start dashboard
This commit is contained in:
parent
bacbc6db0e
commit
ec7aa9faba
50 changed files with 3624 additions and 18 deletions
1
Catalogger.Frontend/src/routes/dash/+layout.svelte
Normal file
1
Catalogger.Frontend/src/routes/dash/+layout.svelte
Normal file
|
|
@ -0,0 +1 @@
|
|||
<slot />
|
||||
12
Catalogger.Frontend/src/routes/dash/+layout.ts
Normal file
12
Catalogger.Frontend/src/routes/dash/+layout.ts
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import { addToast } from "$lib/toast";
|
||||
import { redirect } from "@sveltejs/kit";
|
||||
|
||||
export const load = async ({ parent }) => {
|
||||
const data = await parent();
|
||||
if (!data.user) {
|
||||
addToast({ body: "You are not logged in." });
|
||||
redirect(303, "/");
|
||||
}
|
||||
|
||||
return { user: data.user!, guilds: data.guilds! };
|
||||
};
|
||||
48
Catalogger.Frontend/src/routes/dash/+page.svelte
Normal file
48
Catalogger.Frontend/src/routes/dash/+page.svelte
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<script lang="ts">
|
||||
import { ListGroup, ListGroupItem } from "@sveltestrap/sveltestrap";
|
||||
import type { PageData } from "./$types";
|
||||
|
||||
export let data: PageData;
|
||||
|
||||
$: joinedGuilds = data.guilds.filter((g) => g.bot_in_guild);
|
||||
$: unjoinedGuilds = data.guilds.filter((g) => !g.bot_in_guild);
|
||||
</script>
|
||||
|
||||
<h1>Manage your servers</h1>
|
||||
|
||||
<div class="row">
|
||||
{#if joinedGuilds.length > 0}
|
||||
<div class="col-lg">
|
||||
<h2>Servers you can manage</h2>
|
||||
<ListGroup>
|
||||
{#each joinedGuilds as guild (guild.id)}
|
||||
<ListGroupItem tag="a" href="/dash/{guild.id}">
|
||||
<img
|
||||
src={guild.icon_url}
|
||||
alt="Icon for {guild.name}"
|
||||
style="border-radius: 0.75em; height: 1.5em;"
|
||||
/>
|
||||
{guild.name}
|
||||
</ListGroupItem>
|
||||
{/each}
|
||||
</ListGroup>
|
||||
</div>
|
||||
{/if}
|
||||
{#if unjoinedGuilds.length > 0}
|
||||
<div class="col-lg">
|
||||
<h2>Servers you can add Catalogger to</h2>
|
||||
<ListGroup>
|
||||
{#each unjoinedGuilds as guild (guild.id)}
|
||||
<ListGroupItem tag="a" href="/api/add-guild/{guild.id}">
|
||||
<img
|
||||
src={guild.icon_url}
|
||||
alt="Icon for {guild.name}"
|
||||
style="border-radius: 0.75em; height: 1.5em;"
|
||||
/>
|
||||
{guild.name}
|
||||
</ListGroupItem>
|
||||
{/each}
|
||||
</ListGroup>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue