bpist-squalk-forum/src/routes/+layout.svelte
2026-02-16 18:34:37 +01:00

38 lines
1.1 KiB
Svelte

<script lang="ts">
import "./layout.css";
import favicon from "$lib/assets/favicon.svg";
import Navbar from "$lib/components/Navbar.svelte";
import LeftSidebar from "$lib/components/LeftSidebar.svelte";
import ChatSidebar from "$lib/components/ChatSidebar.svelte";
import { page } from "$app/state";
let { children } = $props();
// In full mode, extract active room from the URL
const mode: "simple" | "full" = "full";
const chatEnabled = true;
let chatExpanded = $state(false);
const activeRoom = $derived(page.params.slug ?? "");
</script>
<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>
<div class="flex h-screen flex-col overflow-hidden bg-gray-100">
<Navbar />
<div class="flex flex-1 gap-5 overflow-hidden pt-2">
<LeftSidebar {mode} {activeRoom} />
<main class="flex-1 overflow-y-auto rounded-t-xl bg-white px-10 py-6">
{@render children()}
</main>
{#if chatEnabled}
<ChatSidebar
{chatExpanded}
onToggle={() => (chatExpanded = !chatExpanded)}
/>
{/if}
</div>
</div>