add simple dashboard on root admin route

This commit is contained in:
bytedream 2023-11-03 19:59:08 +01:00
parent 981e1c3f9b
commit 9562cdeb95
2 changed files with 54 additions and 7 deletions

@ -52,13 +52,15 @@
<div class="h-12 relative bg-base-200 flex justify-center items-center">
<ul class="menu menu-horizontal h-10 p-0 flex items-center bg-base-300 rounded-lg">
{#each tabs as tab}
<li>
<a href={tab.path}>
<IconOutline name={tab.icon} />
<span class="mr-1" class:underline={$page.url.pathname === tab.path}>{tab.name}</span>
<div class="badge">{tab.badge}</div>
</a>
</li>
{#if tab.enabled}
<li>
<a href={tab.path}>
<IconOutline name={tab.icon} />
<span class="mr-1" class:underline={$page.url.pathname === tab.path}>{tab.name}</span>
<div class="badge">{tab.badge}</div>
</a>
</li>
{/if}
{/each}
</ul>
<div class="absolute top-0 right-0 flex items-center h-full">

@ -0,0 +1,45 @@
<script lang="ts">
import type { PageData } from './$types';
import { env } from '$env/dynamic/public';
import { IconOutline } from 'svelte-heros-v2';
export let data: PageData;
let tabs = [
{
path: `${env.PUBLIC_BASE_PATH}/admin/users`,
icon: 'user-group-outline',
name: 'Registrierte Nutzer',
enabled: data.userCount != null
},
{
path: `${env.PUBLIC_BASE_PATH}/admin/reports`,
icon: 'flag-outline',
name: 'Reports',
enabled: data.reportCount != null
},
{
path: `${env.PUBLIC_BASE_PATH}/admin/admin`,
icon: 'users-outline',
name: 'Website Admins',
enabled: data.adminCount != null
}
];
</script>
<div class="flex justify-around items-center h-full">
{#each tabs as tab}
{#if tab.enabled}
<div class="flex flex-col gap-4 justify-center items-center">
<a
class="h-64 w-64 border flex justify-center items-center rounded-xl duration-100 hover:bg-base-200"
href={tab.path}
title={tab.name}
>
<IconOutline width="5rem" height="5rem" name={tab.icon} />
</a>
<span>{tab.name}</span>
</div>
{/if}
{/each}
</div>