68 lines
2.4 KiB
Svelte
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>
|