30 lines
780 B
Svelte
30 lines
780 B
Svelte
<script lang="ts">
|
|
import { page } from '$app/stores';
|
|
import { base } from '$app/paths';
|
|
import Sidebar from '$lib/components/Sidebar.svelte';
|
|
import NavMenu from '$lib/components/NavMenu.svelte';
|
|
import AdminNavMenu from '$lib/components/AdminNavMenu.svelte';
|
|
|
|
let { children, data } = $props();
|
|
|
|
const isAdminRoute = $derived(
|
|
$page.url.pathname === `${base}/admin` || $page.url.pathname.startsWith(`${base}/admin/`)
|
|
);
|
|
</script>
|
|
|
|
<div class="flex h-screen overflow-hidden">
|
|
<Sidebar
|
|
userName={data.session.user?.name ?? data.session.user?.email}
|
|
isAdmin={data.isAdmin}
|
|
isAdminRoute={isAdminRoute}
|
|
/>
|
|
{#if isAdminRoute}
|
|
<AdminNavMenu />
|
|
{:else}
|
|
<NavMenu />
|
|
{/if}
|
|
<main class="flex-1 overflow-auto bg-white p-8">
|
|
{@render children()}
|
|
</main>
|
|
</div>
|