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
|
<li
|
||||||
data-action="toggle-like"
|
data-action="toggle-like"
|
||||||
data-label-track="Like"
|
data-label-track="Like"
|
||||||
|
data-label-unlike-track="Unlike"
|
||||||
data-label-album="Save album to library"
|
data-label-album="Save album to library"
|
||||||
|
data-label-unlike-album="Remove album from library"
|
||||||
data-label-playlist="Save playlist to library"
|
data-label-playlist="Save playlist to library"
|
||||||
|
data-label-unlike-playlist="Remove playlist from library"
|
||||||
>
|
>
|
||||||
Like
|
Like
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
11
js/events.js
11
js/events.js
|
|
@ -1435,9 +1435,10 @@ async function updateContextMenuLikeState(contextMenu, contextTrack) {
|
||||||
const type = contextMenu._contextType || 'track';
|
const type = contextMenu._contextType || 'track';
|
||||||
|
|
||||||
const likeItem = contextMenu.querySelector('li[data-action="toggle-like"]');
|
const likeItem = contextMenu.querySelector('li[data-action="toggle-like"]');
|
||||||
|
let isLiked = false;
|
||||||
if (likeItem) {
|
if (likeItem) {
|
||||||
const isLiked = await db.isFavorite(type, contextTrack.id);
|
const key = type === 'playlist' ? contextTrack.uuid : contextTrack.id;
|
||||||
likeItem.textContent = isLiked ? 'Unlike' : 'Like';
|
isLiked = await db.isFavorite(type, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
const pinItem = contextMenu.querySelector('li[data-action="toggle-pin"]');
|
const pinItem = contextMenu.querySelector('li[data-action="toggle-pin"]');
|
||||||
|
|
@ -1500,8 +1501,10 @@ async function updateContextMenuLikeState(contextMenu, contextTrack) {
|
||||||
|
|
||||||
// Update labels for Like/Save
|
// Update labels for Like/Save
|
||||||
if (item.dataset.action === 'toggle-like') {
|
if (item.dataset.action === 'toggle-like') {
|
||||||
const labelKey = `label${type.charAt(0).toUpperCase() + type.slice(1).replace('User-playlist', 'Playlist')}`;
|
const labelPrefix = isLiked ? 'labelUnlike' : 'label';
|
||||||
const label = item.dataset[labelKey] || item.dataset.labelTrack || 'Like';
|
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;
|
item.textContent = label;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue