Update web/templates/base.html
This commit is contained in:
@@ -89,6 +89,9 @@
|
|||||||
border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,.08);
|
border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,.08);
|
||||||
min-width: 160px; padding:6px; display:grid; gap:4px; z-index:60;
|
min-width: 160px; padding:6px; display:grid; gap:4px; z-index:60;
|
||||||
}
|
}
|
||||||
|
/* KEY FIX: ensure [hidden] actually hides despite display:grid above */
|
||||||
|
.user-menu[hidden]{ display:none !important; }
|
||||||
|
|
||||||
.user-menu .menu-item{
|
.user-menu .menu-item{
|
||||||
display:block; width:100%; text-align:left;
|
display:block; width:100%; text-align:left;
|
||||||
padding:10px 12px; border-radius:10px;
|
padding:10px 12px; border-radius:10px;
|
||||||
@@ -204,12 +207,22 @@
|
|||||||
if (userBtn && userMenu) {
|
if (userBtn && userMenu) {
|
||||||
const open = () => { userMenu.hidden = false; userBtn.setAttribute('aria-expanded','true'); };
|
const open = () => { userMenu.hidden = false; userBtn.setAttribute('aria-expanded','true'); };
|
||||||
const close = () => { userMenu.hidden = true; userBtn.setAttribute('aria-expanded','false'); };
|
const close = () => { userMenu.hidden = true; userBtn.setAttribute('aria-expanded','false'); };
|
||||||
|
|
||||||
userBtn.addEventListener('click', (e) => { e.stopPropagation(); userMenu.hidden ? open() : close(); });
|
userBtn.addEventListener('click', (e) => { e.stopPropagation(); userMenu.hidden ? open() : close(); });
|
||||||
|
|
||||||
|
// Close on outside click / Escape / tab away
|
||||||
document.addEventListener('click', (e) => {
|
document.addEventListener('click', (e) => {
|
||||||
if (userMenu.hidden) return;
|
if (userMenu.hidden) return;
|
||||||
if (!userMenu.contains(e.target) && !userBtn.contains(e.target)) close();
|
if (!userMenu.contains(e.target) && !userBtn.contains(e.target)) close();
|
||||||
});
|
});
|
||||||
document.addEventListener('keydown', (e) => { if (e.key === 'Escape') close(); });
|
document.addEventListener('keydown', (e) => { if (e.key === 'Escape') close(); });
|
||||||
|
|
||||||
|
// NEW: close when clicking any item inside the menu
|
||||||
|
userMenu.addEventListener('click', (e) => {
|
||||||
|
const el = e.target;
|
||||||
|
if (el.closest('a') || el.closest('button')) close();
|
||||||
|
});
|
||||||
|
|
||||||
window.addEventListener('blur', close);
|
window.addEventListener('blur', close);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user