summaryrefslogtreecommitdiff
path: root/ui/routes/+layout.svelte
blob: 0aeb144e3f10524fbeeeadee195c3d1495e0bdd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<script>
  import { setContext } from 'svelte';
  import { onNavigate } from '$app/navigation';
  import '../app.css';
  import logo from '$lib/assets/logo.png';

  import { AppBar } from '@skeletonlabs/skeleton';
  import { currentUser } from '$lib/store';

  let pageContext = $state({
    showMenu: false
  });
  setContext('page', pageContext);

  function toggleMenu(event) {
    event.preventDefault();
    pageContext.showMenu = !pageContext.showMenu;
  }

  onNavigate(() => {
    pageContext.showMenu = false;
  });

  let { children } = $props();
</script>

<AppBar class="app-bar">
  <svelte:fragment slot="lead">
    <button onclick={toggleMenu} class="cursor-pointer">
      <img class="w-8 h-8" alt="logo" src={logo} />
    </button>
  </svelte:fragment>
  <a href="/">understory</a>
  <svelte:fragment slot="trail">
    {#if $currentUser}
      <div class="rounded-full bg-secondary-400 px-3 py-1">
        <a href="/me">@{$currentUser.username}</a>
      </div>
    {/if}
  </svelte:fragment>
</AppBar>

{@render children?.()}