cleaned up album selection behavior, context menu now closes when clicking outside of it

This commit is contained in:
2026-02-21 11:02:54 -05:00
parent 402789e763
commit 4d9ab5d2b8
5 changed files with 183 additions and 148 deletions
@@ -97,6 +97,17 @@ export class QueuePanel
private closeContextMenuHandler = () =>
this.closeContextMenu();
private mousedownCloseHandler = (e: MouseEvent) => {
const path = e.composedPath();
const popup = this.contextMenuPopup;
const submenu = this.playlistSubmenuPopup;
if (popup && path.includes(popup)) return;
if (submenu && path.includes(submenu)) return;
this.closeContextMenu();
};
private clearSelectionHandler = (e: MouseEvent) => {
const path = e.composedPath();
const isTrackClick = path.some(
@@ -453,6 +464,10 @@ export class QueuePanel
'contextmenu',
this.closeContextMenuHandler,
);
document.addEventListener(
'mousedown',
this.mousedownCloseHandler,
);
document.addEventListener(
'click',
this.clearSelectionHandler,
@@ -485,6 +500,10 @@ export class QueuePanel
'contextmenu',
this.closeContextMenuHandler,
);
document.removeEventListener(
'mousedown',
this.mousedownCloseHandler,
);
document.removeEventListener(
'click',
this.clearSelectionHandler,