From 7968c662f64f0374efee8da9bf43fa55c3919ea3 Mon Sep 17 00:00:00 2001 From: Hadi Date: Mon, 4 May 2026 17:03:05 +0200 Subject: [PATCH] Edit sidebar Signed-off-by: Hadi --- src/components/NoteNavSidebar.svelte | 32 ++++++++++++++++- src/pages/notes/[...slug].astro | 54 ++++++++++++++-------------- src/pages/notes/[category].astro | 12 +++---- 3 files changed, 62 insertions(+), 36 deletions(-) diff --git a/src/components/NoteNavSidebar.svelte b/src/components/NoteNavSidebar.svelte index edf1402..5eb530b 100644 --- a/src/components/NoteNavSidebar.svelte +++ b/src/components/NoteNavSidebar.svelte @@ -19,6 +19,36 @@ let search = $state(""); + $effect(() => { + const navDrawer = document.getElementById("nav-drawer") as HTMLInputElement | null; + if (!navDrawer) return; + + const lgQuery = window.matchMedia("(min-width: 1024px)"); + + const overlay = document.createElement("div"); + overlay.style.cssText = + "position:fixed;inset:0 0 0 14rem;background:oklch(0% 0 0/.4);z-index:51;display:none;cursor:pointer"; + document.body.appendChild(overlay); + + function update() { + overlay.style.display = + navDrawer.checked && !lgQuery.matches ? "block" : "none"; + } + + navDrawer.addEventListener("change", update); + lgQuery.addEventListener("change", update); + overlay.addEventListener("click", () => { + navDrawer.checked = false; + navDrawer.dispatchEvent(new Event("change")); + }); + + return () => { + navDrawer.removeEventListener("change", update); + lgQuery.removeEventListener("change", update); + overlay.remove(); + }; + }); + function getCategory(n: Note): string { if (n.data.category) return n.data.category; const parts = n.id.split("/"); @@ -66,7 +96,7 @@