From 3685e33b4815e11f7962d860a7b7711043c9c3a0 Mon Sep 17 00:00:00 2001 From: Samidy Date: Sun, 8 Mar 2026 01:15:51 +0300 Subject: [PATCH] fix(context menu): Change from "Like" to "Unlike" depending on state --- index.html | 3 +++ js/events.js | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 5b4b4b7..b7b9e98 100644 --- a/index.html +++ b/index.html @@ -48,8 +48,11 @@
  • Like
  • diff --git a/js/events.js b/js/events.js index 5a8af19..04fbab2 100644 --- a/js/events.js +++ b/js/events.js @@ -1435,9 +1435,10 @@ async function updateContextMenuLikeState(contextMenu, contextTrack) { const type = contextMenu._contextType || 'track'; const likeItem = contextMenu.querySelector('li[data-action="toggle-like"]'); + let isLiked = false; if (likeItem) { - const isLiked = await db.isFavorite(type, contextTrack.id); - likeItem.textContent = isLiked ? 'Unlike' : 'Like'; + const key = type === 'playlist' ? contextTrack.uuid : contextTrack.id; + isLiked = await db.isFavorite(type, key); } const pinItem = contextMenu.querySelector('li[data-action="toggle-pin"]'); @@ -1500,8 +1501,10 @@ async function updateContextMenuLikeState(contextMenu, contextTrack) { // Update labels for Like/Save if (item.dataset.action === 'toggle-like') { - const labelKey = `label${type.charAt(0).toUpperCase() + type.slice(1).replace('User-playlist', 'Playlist')}`; - const label = item.dataset[labelKey] || item.dataset.labelTrack || 'Like'; + const labelPrefix = isLiked ? 'labelUnlike' : 'label'; + const labelKey = `${labelPrefix}${type.charAt(0).toUpperCase() + type.slice(1).replace('User-playlist', 'Playlist')}`; + const fallbackKey = isLiked ? 'labelUnlikeTrack' : 'labelTrack'; + const label = item.dataset[labelKey] || item.dataset[fallbackKey] || (isLiked ? 'Unlike' : 'Like'); item.textContent = label; } });