From 2ddf26ec4c9fb3351b9bb81097abc3db841402f0 Mon Sep 17 00:00:00 2001 From: edideaur Date: Thu, 2 Apr 2026 18:52:28 +0000 Subject: [PATCH] feat: right clicking context menu on miniplayer --- index.html | 15 +++++++++++++++ js/events.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/index.html b/index.html index 524ff19..697a1f0 100644 --- a/index.html +++ b/index.html @@ -5207,6 +5207,21 @@ +

{ + if (!player.currentTrack) return; + const track = player.currentTrack; + if (track.isLocal) return; + + const target = e.target.closest('.cover, .title, .album, .artist'); + if (!target) return; + + e.preventDefault(); + e.stopPropagation(); + + if (contextMenu._originalHTML) { + contextMenu.innerHTML = contextMenu._originalHTML; + contextMenu._originalHTML = null; + } + + contextTrack = track; + contextMenu._contextTrack = track; + contextMenu._contextType = track.type || 'track'; + contextMenu._selectedTracks = []; + + const unavailableActions = ['play-next', 'add-to-queue', 'download', 'track-mix']; + contextMenu.querySelectorAll('[data-action]').forEach((btn) => { + if (unavailableActions.includes(btn.dataset.action)) { + btn.style.display = track.isUnavailable ? 'none' : 'block'; + } + }); + + await updateContextMenuLikeState(contextMenu, track); + positionMenu(contextMenu, e.clientX, e.clientY); + }); + document.addEventListener('click', (e) => { if (contextMenu.style.display === 'block') { if (contextMenu._originalHTML) {