FIX custom playlist buttons

This commit is contained in:
Julien Maille 2026-01-02 00:07:22 +01:00
parent 801fa264cd
commit 81d666ce3f
3 changed files with 57 additions and 0 deletions

View file

@ -591,6 +591,10 @@ export function initializeTrackInteractions(player, api, mainContent, contextMen
const card = e.target.closest('.card');
if (card) {
if (e.target.closest('.edit-playlist-btn') || e.target.closest('.delete-playlist-btn')) {
return;
}
const href = card.dataset.href;
if (href) {
// Allow native links inside card to work if any exist

View file

@ -596,6 +596,12 @@ async showFullscreenCover(track, nextTrack, lyricsManager, audioPlayer) {
const myPlaylists = await db.getPlaylists();
if (myPlaylists.length) {
myPlaylistsContainer.innerHTML = myPlaylists.map(p => this.createUserPlaylistCardHTML(p)).join('');
myPlaylists.forEach(playlist => {
const el = myPlaylistsContainer.querySelector(`[data-playlist-id="${playlist.id}"]`);
if (el) {
trackDataStore.set(el, playlist);
}
});
} else {
myPlaylistsContainer.innerHTML = createPlaceholder('No playlists yet. Create your first playlist!');
}

View file

@ -666,6 +666,53 @@ body.has-page-background .track-item:hover {
color: #ef4444 !important;
}
.edit-playlist-btn,
.delete-playlist-btn {
position: absolute;
top: 2%;
background: rgba(0, 0, 0, 0.5) !important;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border-radius: 50% !important;
width: 32px !important;
height: 32px !important;
padding: 0 !important;
display: flex !important;
align-items: center;
justify-content: center;
opacity: 0;
transform: scale(0.8);
transition: all 0.2s ease !important;
z-index: 10;
color: white !important;
border: none !important;
cursor: pointer;
}
.edit-playlist-btn {
right: 2%;
}
.delete-playlist-btn {
left: 2%;
}
.card:hover .edit-playlist-btn,
.card:hover .delete-playlist-btn {
opacity: 1;
transform: scale(1);
}
.edit-playlist-btn:hover,
.delete-playlist-btn:hover {
background: rgba(0, 0, 0, 0.8) !important;
transform: scale(1.1) !important;
}
.delete-playlist-btn:hover {
color: #ef4444 !important;
}
.card-image {
width: 100%;
aspect-ratio: 1/1;