From b6b93aa240b1ae0af2a56c2dee821f1aec39ed62 Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 25 Sep 2026 15:45:55 +0200 Subject: [PATCH] =?UTF-8?q?Sidebar:=20Men=C3=BC=20ein-/ausklappbar=20(eing?= =?UTF-8?q?eklappt=20als=20Symbolleiste,=20Zustand=20wird=20gemerkt)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- src/renderer/app.js | 20 ++++++++++++++++++++ src/renderer/index.html | 3 +++ src/renderer/styles.css | 9 +++++++++ 3 files changed, 32 insertions(+) diff --git a/src/renderer/app.js b/src/renderer/app.js index 4de547d..da97b85 100644 --- a/src/renderer/app.js +++ b/src/renderer/app.js @@ -154,6 +154,26 @@ $$('#sidebar .nav[data-view]').forEach((n) => n.addEventListener('click', () => render(); })); +// ============================================================ Einklappbares Menü (Sidebar) +(() => { + const KEY = 'mrterm.nav.collapsed'; + const sb = $('#sidebar'); + // Tooltips für die Symbolansicht + $$('#navMenu .nav').forEach((n) => { n.title = n.querySelector('span')?.textContent || ''; }); + const apply = (collapsed) => { + sb.classList.toggle('nav-collapsed', collapsed); + $('#navToggle').title = collapsed ? 'Menü ausklappen' : 'Menü einklappen'; + }; + let collapsed = false; + try { collapsed = localStorage.getItem(KEY) === '1'; } catch {} + apply(collapsed); + $('#navToggle').onclick = () => { + collapsed = !collapsed; + apply(collapsed); + try { localStorage.setItem(KEY, collapsed ? '1' : '0'); } catch {} + }; +})(); + // ============================================================ Verzeichnisbaum (Sidebar) const TREE_KEY = 'mrterm.tree.open'; const treeOpen = new Set((() => { try { return JSON.parse(localStorage.getItem(TREE_KEY) || '[]'); } catch { return []; } })()); diff --git a/src/renderer/index.html b/src/renderer/index.html index d6f6020..463038f 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -27,6 +27,8 @@