diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index fb73bd1..3c08d7f 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -3,7 +3,7 @@ import { browser } from '$app/environment'; import { page } from '$app/stores'; import { goto } from '$app/navigation'; - import { Menu, EllipsisVertical, ChevronDown, FileText, Newspaper, HelpCircle, StickyNote, Inbox } from 'lucide-svelte'; + import { Menu, EllipsisVertical, ChevronDown, FileText, Newspaper, HelpCircle, StickyNote, Inbox, PanelLeft } from 'lucide-svelte'; import { isAuthenticated, user, tryRefresh, logout } from '$lib/stores/auth'; import { toasts, removeToast } from '$lib/stores/toast'; import { refresh as refreshPublicConfig } from '$lib/stores/config'; @@ -32,6 +32,15 @@ let menuOpen = $state(false); // ⋮ 설정 메뉴 let navMenu = $state(''); // '' | 'docs' | 'news' — 상단 드롭다운 + // 데스크탑 분류(소스트리) 사이드바 접기/펴기 — localStorage 기억. 접으면 콘텐츠가 넓어짐. + let sidebarCollapsed = $state( + typeof localStorage !== 'undefined' ? localStorage.getItem('sidebarCollapsed') === 'true' : false + ); + function toggleSidebarCollapse() { + sidebarCollapsed = !sidebarCollapsed; + if (typeof localStorage !== 'undefined') localStorage.setItem('sidebarCollapsed', String(sidebarCollapsed)); + } + function isActive(path) { return $page.url.pathname.startsWith(path); } @@ -85,6 +94,11 @@
ui.openDrawer('sidebar')} />
+ {/if} DS @@ -150,7 +164,7 @@
{#if showSidebar} -