29 lines
725 B
Svelte
29 lines
725 B
Svelte
<script lang="ts">
|
|
import { page } from '@inertiajs/svelte';
|
|
import type { Snippet } from 'svelte';
|
|
import { SidebarProvider } from '@/components/ui/sidebar';
|
|
import type { AppVariant } from '@/types';
|
|
|
|
let {
|
|
variant = 'sidebar',
|
|
class: className = '',
|
|
children,
|
|
}: {
|
|
variant?: AppVariant;
|
|
class?: string;
|
|
children?: Snippet;
|
|
} = $props();
|
|
|
|
const isOpen = $derived(page.props.sidebarOpen);
|
|
</script>
|
|
|
|
{#if variant === 'header'}
|
|
<div class="flex min-h-screen w-full flex-col {className}">
|
|
{@render children?.()}
|
|
</div>
|
|
{:else}
|
|
<SidebarProvider defaultOpen={isOpen}>
|
|
{@render children?.()}
|
|
</SidebarProvider>
|
|
{/if}
|