mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-17 02:05:22 -04:00
Sessions: Esc + outside-click also close the Move-to-folder submenu
The session-dropdown Esc handler only closed .session-dropdown-menu, leaving the .session-folder-submenu (Move to folder → folder list) orphaned on screen. Same gap on the click-away path. Extend both selectors to cover the submenu so a single Esc / outside-click dismisses the whole stack.
This commit is contained in:
@@ -2258,8 +2258,8 @@ if (document.readyState === 'loading') {
|
|||||||
// Shared global listener to close all session dropdowns on click-away or Escape
|
// Shared global listener to close all session dropdowns on click-away or Escape
|
||||||
function _initDropdownDismiss() {
|
function _initDropdownDismiss() {
|
||||||
document.addEventListener('click', (e) => {
|
document.addEventListener('click', (e) => {
|
||||||
if (e.target.closest('.session-dropdown-menu')) return;
|
if (e.target.closest('.session-dropdown-menu, .session-folder-submenu')) return;
|
||||||
document.querySelectorAll('.session-dropdown-menu').forEach(d => d.style.display = 'none');
|
document.querySelectorAll('.session-dropdown-menu, .session-folder-submenu').forEach(d => d.style.display = 'none');
|
||||||
});
|
});
|
||||||
// Watch the sidebar — when it's hidden (any path: hamburger, swipe, mobile
|
// Watch the sidebar — when it's hidden (any path: hamburger, swipe, mobile
|
||||||
// collapse), close any open session dropdowns so they don't orphan over
|
// collapse), close any open session dropdowns so they don't orphan over
|
||||||
@@ -2268,14 +2268,16 @@ function _initDropdownDismiss() {
|
|||||||
if (_sb) {
|
if (_sb) {
|
||||||
new MutationObserver(() => {
|
new MutationObserver(() => {
|
||||||
if (_sb.classList.contains('hidden')) {
|
if (_sb.classList.contains('hidden')) {
|
||||||
document.querySelectorAll('.session-dropdown-menu, .folder-submenu').forEach(d => d.style.display = 'none');
|
document.querySelectorAll('.session-dropdown-menu, .session-folder-submenu').forEach(d => d.style.display = 'none');
|
||||||
}
|
}
|
||||||
}).observe(_sb, { attributes: true, attributeFilter: ['class'] });
|
}).observe(_sb, { attributes: true, attributeFilter: ['class'] });
|
||||||
}
|
}
|
||||||
document.addEventListener('keydown', (e) => {
|
document.addEventListener('keydown', (e) => {
|
||||||
if (e.key === 'Escape') {
|
if (e.key !== 'Escape') return;
|
||||||
document.querySelectorAll('.session-dropdown-menu').forEach(d => d.style.display = 'none');
|
// Esc must dismiss both the parent dropdown AND the Move-to-folder
|
||||||
}
|
// submenu in one keypress — previously only the dropdown closed and
|
||||||
|
// the submenu was left orphaned on screen.
|
||||||
|
document.querySelectorAll('.session-dropdown-menu, .session-folder-submenu').forEach(d => d.style.display = 'none');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user