fix(context menu): Change from "Like" to "Unlike" depending on state
This commit is contained in:
parent
6dbd07ed88
commit
3685e33b48
2 changed files with 10 additions and 4 deletions
|
|
@ -48,8 +48,11 @@
|
|||
<li
|
||||
data-action="toggle-like"
|
||||
data-label-track="Like"
|
||||
data-label-unlike-track="Unlike"
|
||||
data-label-album="Save album to library"
|
||||
data-label-unlike-album="Remove album from library"
|
||||
data-label-playlist="Save playlist to library"
|
||||
data-label-unlike-playlist="Remove playlist from library"
|
||||
>
|
||||
Like
|
||||
</li>
|
||||
|
|
|
|||
11
js/events.js
11
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;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue