From d245c60a05401a0748f0d9711633bdcc36908c44 Mon Sep 17 00:00:00 2001 From: Samidy Date: Tue, 6 Jan 2026 21:54:51 +0300 Subject: [PATCH] fix removing songs in playlist with firebase (+ removing songs improvements) --- js/app.js | 4 +++- js/events.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/js/app.js b/js/app.js index 256a4e4..5928843 100644 --- a/js/app.js +++ b/js/app.js @@ -537,13 +537,15 @@ document.addEventListener('DOMContentLoaded', async () => { } if (e.target.closest('.remove-from-playlist-btn')) { + e.stopPropagation(); const btn = e.target.closest('.remove-from-playlist-btn'); const index = parseInt(btn.dataset.trackIndex); const playlistId = window.location.hash.split('/')[1]; db.getPlaylist(playlistId).then(async (playlist) => { if (playlist && playlist.tracks[index]) { const trackId = playlist.tracks[index].id; - await db.removeTrackFromPlaylist(playlistId, trackId); + const updatedPlaylist = await db.removeTrackFromPlaylist(playlistId, trackId); + syncManager.syncUserPlaylist(updatedPlaylist, 'update'); ui.renderPlaylistPage(playlistId); } }); diff --git a/js/events.js b/js/events.js index 795faa9..f56fa95 100644 --- a/js/events.js +++ b/js/events.js @@ -577,7 +577,7 @@ export function initializeTrackInteractions(player, api, mainContent, contextMen } const trackItem = e.target.closest('.track-item'); - if (trackItem && !trackItem.dataset.queueIndex) { + if (trackItem && !trackItem.dataset.queueIndex && !e.target.closest('.remove-from-playlist-btn')) { const parentList = trackItem.closest('.track-list'); const allTrackElements = Array.from(parentList.querySelectorAll('.track-item')); const trackList = allTrackElements.map(el => trackDataStore.get(el)).filter(Boolean);