2023-04-14 13:13:53 +00:00
|
|
|
<script lang="ts">
|
2023-04-09 16:20:43 +00:00
|
|
|
import {
|
|
|
|
Sidebar,
|
|
|
|
SidebarGroup,
|
|
|
|
SidebarItem,
|
|
|
|
SidebarWrapper,
|
|
|
|
} from "flowbite-svelte";
|
|
|
|
import { CurrentPage } from "./nav";
|
2023-04-14 13:13:53 +00:00
|
|
|
import { onMount } from "svelte";
|
|
|
|
|
|
|
|
export let sidebarOpen = false;
|
|
|
|
export let sidebarOpenVisible = false;
|
|
|
|
|
|
|
|
$: open = !sidebarOpenVisible || sidebarOpen;
|
|
|
|
|
|
|
|
onMount(() => {
|
|
|
|
const mq = window.matchMedia("(max-width: 768px)");
|
|
|
|
const onChange = (e: MediaQueryListEvent) => {
|
|
|
|
sidebarOpenVisible = e.matches;
|
|
|
|
};
|
|
|
|
mq.addEventListener("change", onChange);
|
|
|
|
|
|
|
|
onChange({ matches: mq.matches } as MediaQueryListEvent);
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
mq.removeEventListener("change", onChange);
|
|
|
|
};
|
|
|
|
});
|
2023-04-09 16:20:43 +00:00
|
|
|
</script>
|
|
|
|
|
2023-04-14 13:13:53 +00:00
|
|
|
<Sidebar class="h-screen" style={open ? "display: block" : "display: none"}>
|
2023-04-09 16:20:43 +00:00
|
|
|
<SidebarWrapper class="h-full">
|
|
|
|
<SidebarGroup>
|
|
|
|
<SidebarItem
|
|
|
|
label="Personal Data"
|
|
|
|
active={$CurrentPage == "personal-info"}
|
|
|
|
href="#personal-info"
|
|
|
|
>
|
|
|
|
<svelte:fragment slot="icon">
|
|
|
|
<span class="material-icons-outlined"> account_circle </span>
|
|
|
|
</svelte:fragment>
|
|
|
|
</SidebarItem>
|
|
|
|
<SidebarItem
|
|
|
|
label="Security"
|
|
|
|
active={$CurrentPage == "security"}
|
|
|
|
href="#security"
|
|
|
|
>
|
|
|
|
<svelte:fragment slot="icon">
|
|
|
|
<span class="material-icons-outlined"> lock </span>
|
|
|
|
</svelte:fragment>
|
|
|
|
</SidebarItem>
|
|
|
|
</SidebarGroup>
|
|
|
|
</SidebarWrapper>
|
|
|
|
</Sidebar>
|