Files
lassistanoque/backend/web/src/lib/components/Sidebar.svelte
T

68 lines
2.4 KiB
Svelte

<script lang="ts">
import { uiState } from "$lib/state/ui.svelte"
import Menu from "$lib/components/Menu.svelte"
import { logout } from "$lib/state/auth.svelte"
import logo from "$lib/assets/logo-txt.png"
import { space } from '$lib/state/space.svelte'
let {spaceid, handleMenuDesktop, handleMenuMobile} = $props();
const handleLogout = () => {
logout()
}
</script>
<div class="flex flex-row italic mb-2">
{#if uiState.menuContentVisible}
<div class="flex-1 p-3 font openonly">
<img src={logo} class="h-5" alt="logo"/>
</div>
{/if}
<button id="hamburgerDesktop" onclick={handleMenuDesktop} title="Open menu">
<i class="icon-menu pointer block p-2"></i>
</button>
<button id="hamburgerMobile" onclick={handleMenuMobile} title="Open menu">
<i class="icon-menu pointer block p-2"></i>
</button>
</div>
{#if uiState.menuContentVisible}
<div class="m-2">
<div class="formelement">
<select class="textinput">
{#each space.spaces as s (s.id)}
<option value={s.id}>{s.label}</option>
{/each}
</select>
</div>
</div>
{/if}
<div id="menu" class="flex-1 overflow-y-scroll">
<Menu label="Nouveau chat" icon="icon-plus" link={`/${spaceid}`}/>
<Menu label="Conversations" icon="icon-chat" link={`/${spaceid}/history`}/>
<Menu label="Planification" icon="icon-tasks" link={`/${spaceid}/tasks`}/>
<Menu label="Connaissances" icon="icon-graduation-cap" link={`/${spaceid}/kb`}/>
<Menu label="Réglages" icon="icon-cog" link={`/${spaceid}/settings`}/>
</div>
<div id="profile" class="w-full items-center border-t border-stone-200 dark:border-stone-800">
{#if uiState.menuContentVisible}
<div class="flex flex-row gap-2 p-2 ">
<div class="py-1 flex-1 flex flex-row text-xs">
<div class="w-6 h-6 rounded-full bg-cyan-600 text-white flex items-center justify-center font-medium">
FM
</div>
<div class="flex-1 ml-2 inline-flex items-center">Fabien Masson</div>
</div>
<a href="/profile" class="bt small inline-flex items-center justify-center" title="Edition profil">
<i class="icon-edit"></i>
</a>
<button class="bt small" onclick={handleLogout} title="Déconnecter">
<i class="icon-logout"></i>
</button>
</div>
{:else}
<Menu label="User" icon="icon-user" link="/profile"/>
{/if}
</div>