+layout.svelte 934 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <script>
  2. import '../app.css';
  3. import favicon from '$lib/assets/favicon.svg';
  4. import Sidebar from '$lib/layout/SideBar.svelte';
  5. import DashboardGuard from '$lib/components/containers/DashboardGuard.svelte';
  6. import { browser } from '$app/environment';
  7. import { page } from '$app/stores';
  8. let { children } = $props();
  9. const isRoot = $derived($page.url.pathname === '/');
  10. const isNotFound = $derived(!$page.route || !$page.route.id);
  11. const hideSidebar = $derived(isRoot || isNotFound);
  12. </script>
  13. <svelte:head>
  14. <link rel="icon" href={favicon} />
  15. </svelte:head>
  16. <div class="flex min-h-screen">
  17. {#if browser}
  18. {#if hideSidebar}
  19. <main class="flex-1 bg-gray-50 dark:bg-gray-900">
  20. {@render children?.()}
  21. </main>
  22. {:else}
  23. <Sidebar />
  24. <main class="flex-1 ml-64 bg-gray-50 dark:bg-gray-900">
  25. <DashboardGuard>
  26. {@render children?.()}
  27. </DashboardGuard>
  28. </main>
  29. {/if}
  30. {/if}
  31. </div>