diff --git a/webui/index.html b/webui/index.html
index 58db7919..630c6145 100644
--- a/webui/index.html
+++ b/webui/index.html
@@ -3797,24 +3797,8 @@
-
-
+
diff --git a/webui/static/discover.js b/webui/static/discover.js
index 86b64721..3d9b6b15 100644
--- a/webui/static/discover.js
+++ b/webui/static/discover.js
@@ -50,7 +50,7 @@ async function loadDiscoverPage() {
initializeLastfmRadioSection(), // Last.fm Radio section (gated on API key)
initializeListenBrainzTabs(), // ListenBrainz playlists (tabbed)
loadDecadeBrowserTabs(), // Time Machine (tabbed by decade)
- loadGenreBrowserTabs(), // Browse by Genre (tabbed by genre)
+ // loadGenreBrowserTabs(), // REMOVED (#discover redesign): empty + redundant with Genre Explorer
loadListenBrainzPlaylistsFromBackend(), // Load ListenBrainz playlist states for persistence
loadDiscoveryBlacklist() // Blocked artists list
]);
@@ -3304,84 +3304,58 @@ function groupListenBrainzPlaylists(playlists) {
}
function buildListenBrainzPlaylistsHtml(playlists, tabId) {
- let html = '';
- playlists.forEach((playlist, index) => {
+ // #discover redesign: each playlist is a mix card (opens its tracks + actions in the shared
+ // modal) instead of a full-width track-table subsection. Shared by Last.fm Radio + ListenBrainz.
+ const icon = tabId === 'lastfm_radio' ? '\U0001F4FB' : '\U0001F3A7';
+ const mixes = playlists.map(playlist => {
const playlistData = playlist.playlist || playlist;
const identifier = playlistData.identifier?.split('/').pop() || '';
- console.log(`📋 Playlist ${index}:`, {
- title: playlistData.title,
- fullIdentifier: playlistData.identifier,
- extractedIdentifier: identifier
- });
const title = playlistData.title || 'Untitled Playlist';
const creator = playlistData.creator || 'ListenBrainz';
-
let trackCount = 50;
if (playlistData.annotation?.track_count && playlistData.annotation.track_count > 0) {
trackCount = playlistData.annotation.track_count;
} else if (playlistData.track && Array.isArray(playlistData.track) && playlistData.track.length > 0) {
trackCount = playlistData.track.length;
}
-
- const playlistId = `discover-lb-playlist-${identifier}`; // Use consistent MBID-based ID
- const virtualPlaylistId = `discover_lb_${tabId}_${identifier}`;
-
- html += `
-
- ` : '';
+
` : '');
overlay.innerHTML = `