52 lines
1.2 KiB
Svelte
52 lines
1.2 KiB
Svelte
<script lang="ts">
|
|
import type { PageData } from './$types';
|
|
import { env } from '$env/dynamic/public';
|
|
import { Cog6Tooth, Flag, UserGroup, Users } from 'svelte-heros-v2';
|
|
|
|
export let data: PageData;
|
|
|
|
let tabs = [
|
|
{
|
|
path: `${env.PUBLIC_BASE_PATH}/admin/users`,
|
|
icon: UserGroup,
|
|
name: 'Registrierte Nutzer',
|
|
enabled: data.userCount != null
|
|
},
|
|
{
|
|
path: `${env.PUBLIC_BASE_PATH}/admin/reports`,
|
|
icon: Flag,
|
|
name: 'Reports',
|
|
enabled: data.reportCount != null
|
|
},
|
|
{
|
|
path: `${env.PUBLIC_BASE_PATH}/admin/admin`,
|
|
icon: Users,
|
|
name: 'Website Admins',
|
|
enabled: data.adminCount != null
|
|
},
|
|
{
|
|
path: `${env.PUBLIC_BASE_PATH}/admin/settings`,
|
|
icon: Cog6Tooth,
|
|
name: 'Website Einstellungen',
|
|
enabled: data.settingsRead
|
|
}
|
|
];
|
|
</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}
|
|
>
|
|
<svelte:component this={tab.icon} width="5rem" height="5rem" />
|
|
</a>
|
|
<span>{tab.name}</span>
|
|
</div>
|
|
{/if}
|
|
{/each}
|
|
</div>
|