|
145 | 145 | } |
146 | 146 |
|
147 | 147 | // ======================================== |
148 | | - // QUICK ACTION BAR WIRING |
| 148 | + // THREE-LEVEL HEADER VISIBILITY TOGGLE |
| 149 | + // Level 0 = Full header (app-header + dropzone visible) |
| 150 | + // Level 1 = Compact (QAB visible, header hidden) |
| 151 | + // Level 2 = Hidden (everything hidden, floating pill only) |
149 | 152 | // ======================================== |
150 | | - if (quickActionBar) { |
151 | | - // Header toggle — restore full header + dropzone view |
152 | | - var qabHeaderToggle = document.getElementById('qab-header-toggle'); |
153 | | - if (qabHeaderToggle) qabHeaderToggle.addEventListener('click', function () { |
| 153 | + var headerLevel = 0; |
| 154 | + var HEADER_LEVEL_KEY = 'ta-header-level'; |
| 155 | + var restorePill = document.getElementById('header-restore-pill'); |
| 156 | + |
| 157 | + function setHeaderLevel(level) { |
| 158 | + headerLevel = level; |
| 159 | + localStorage.setItem(HEADER_LEVEL_KEY, String(level)); |
| 160 | + |
| 161 | + if (level === 0) { |
| 162 | + // Full header — show header + dropzone, hide QAB, remove hidden class |
| 163 | + document.body.classList.remove('header-hidden'); |
154 | 164 | dropzone.style.display = 'block'; |
155 | | - quickActionBar.style.display = 'none'; |
| 165 | + if (quickActionBar) quickActionBar.style.display = 'none'; |
156 | 166 | if (siteHeader) siteHeader.style.display = ''; |
157 | | - }); |
| 167 | + } else if (level === 1) { |
| 168 | + // Compact — hide header + dropzone, show QAB |
| 169 | + document.body.classList.remove('header-hidden'); |
| 170 | + dropzone.style.display = 'none'; |
| 171 | + if (siteHeader) siteHeader.style.display = 'none'; |
| 172 | + if (quickActionBar) quickActionBar.style.display = 'flex'; |
| 173 | + syncQabViewState(); |
| 174 | + } else if (level === 2) { |
| 175 | + // Hidden — hide everything, show floating restore pill |
| 176 | + dropzone.style.display = 'none'; |
| 177 | + if (siteHeader) siteHeader.style.display = 'none'; |
| 178 | + if (quickActionBar) quickActionBar.style.display = 'none'; |
| 179 | + document.body.classList.add('header-hidden'); |
| 180 | + } |
| 181 | + } |
158 | 182 |
|
| 183 | + // Collapse header button (in app-header) — level 0 → 1 |
| 184 | + var collapseHeaderBtn = document.getElementById('collapse-header-btn'); |
| 185 | + if (collapseHeaderBtn) collapseHeaderBtn.addEventListener('click', function () { |
| 186 | + setHeaderLevel(1); |
| 187 | + }); |
| 188 | + |
| 189 | + // QAB header toggle — level 1 → 2 (hide everything) |
| 190 | + if (quickActionBar) { |
| 191 | + var qabHeaderToggle = document.getElementById('qab-header-toggle'); |
| 192 | + if (qabHeaderToggle) { |
| 193 | + // Update title/icon to indicate it will hide everything |
| 194 | + qabHeaderToggle.title = 'Hide full header'; |
| 195 | + var qabIcon = qabHeaderToggle.querySelector('i'); |
| 196 | + if (qabIcon) qabIcon.className = 'bi bi-chevron-up'; |
| 197 | + qabHeaderToggle.addEventListener('click', function () { |
| 198 | + setHeaderLevel(2); |
| 199 | + }); |
| 200 | + } |
| 201 | + } |
| 202 | + |
| 203 | + // Floating restore pill — level 2 → 0 (restore full header) |
| 204 | + if (restorePill) restorePill.addEventListener('click', function () { |
| 205 | + setHeaderLevel(0); |
| 206 | + }); |
| 207 | + |
| 208 | + // Restore saved header level on page load |
| 209 | + var savedLevel = parseInt(localStorage.getItem(HEADER_LEVEL_KEY), 10); |
| 210 | + if (savedLevel === 1 || savedLevel === 2) { |
| 211 | + setHeaderLevel(savedLevel); |
| 212 | + } |
| 213 | + |
| 214 | + // ======================================== |
| 215 | + // QUICK ACTION BAR WIRING |
| 216 | + // ======================================== |
| 217 | + if (quickActionBar) { |
159 | 218 | // New — delegate to existing new-document button |
160 | 219 | var qabNew = document.getElementById('qab-new'); |
161 | 220 | if (qabNew) qabNew.addEventListener('click', function () { |
|
351 | 410 | }); |
352 | 411 | } |
353 | 412 |
|
354 | | - // Collapse header button — hide full header, show QAB |
355 | | - var collapseHeaderBtn = document.getElementById('collapse-header-btn'); |
356 | | - if (collapseHeaderBtn) collapseHeaderBtn.addEventListener('click', function () { |
357 | | - dropzone.style.display = 'none'; |
358 | | - syncQabVisibility(); |
359 | | - syncQabViewState(); |
360 | | - }); |
361 | | - |
362 | 413 | // ======================================== |
363 | 414 | // GLOBAL KEYBOARD SHORTCUTS |
364 | 415 | // ======================================== |
|
0 commit comments