32 lines
874 B
Vue
32 lines
874 B
Vue
<template>
|
|
<ClientOnly>
|
|
<Toaster />
|
|
</ClientOnly>
|
|
<AppSidebar />
|
|
<SidebarInset>
|
|
<div class="flex flex-1">
|
|
<div class="w-full">
|
|
<header v-if="slots.header">
|
|
<slot name="header" />
|
|
</header>
|
|
<main class="h-screen">
|
|
<slot />
|
|
</main>
|
|
</div>
|
|
<aside v-if="slots.sidebar" class="w-full hidden sm:block">
|
|
<slot name="sidebar" />
|
|
</aside>
|
|
</div>
|
|
</SidebarInset>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useSlots } from 'vue'
|
|
import AppSidebar from '@/components/ui/sidebar/AppSidebar.vue';
|
|
import SidebarInset from '@/components/ui/sidebar/SidebarInset.vue';
|
|
import { Toaster } from '~/components/ui/sonner';
|
|
import 'vue-sonner/style.css'
|
|
|
|
const slots = useSlots()
|
|
</script>
|