diff --git a/frontend/app/app.vue b/frontend/app/app.vue index 3c4981c..cbb6bb2 100644 --- a/frontend/app/app.vue +++ b/frontend/app/app.vue @@ -4,6 +4,11 @@ const route = useRoute() const { initMood } = useMood() const navigationItems = [ + { + label: 'Boîte à outils', + icon: 'i-lucide-wrench', + to: '/tools', + }, { label: 'Documents', icon: 'i-lucide-book-open', @@ -34,6 +39,9 @@ const navigationItems = [ /** Mobile drawer state. */ const mobileMenuOpen = ref(false) +/** Sidebar collapse state (icons-only mode). */ +const sidebarCollapsed = ref(false) + /** Close mobile menu on route change. */ watch(() => route.path, () => { mobileMenuOpen.value = false @@ -43,8 +51,14 @@ watch(() => route.path, () => { const ws = useWebSocket() const { setupWsNotifications } = useNotifications() +watch(sidebarCollapsed, (val) => { + localStorage.setItem('libred-sidebar-collapsed', String(val)) +}) + onMounted(async () => { initMood() + const savedCollapsed = localStorage.getItem('libred-sidebar-collapsed') + if (savedCollapsed !== null) sidebarCollapsed.value = savedCollapsed === 'true' auth.hydrateFromStorage() if (auth.token) { try { @@ -177,7 +191,7 @@ function isActive(to: string) {
-