diff --git a/js/ui.js b/js/ui.js index 2f7f6e5..40ca9fc 100644 --- a/js/ui.js +++ b/js/ui.js @@ -219,10 +219,43 @@ export class UIRenderer { } createUserPlaylistCardHTML(playlist) { + let imageHTML = ''; + + if (playlist.cover) { + imageHTML = `${playlist.name}`; + } else { + const tracks = playlist.tracks || []; + const uniqueCovers = []; + const seenCovers = new Set(); + + for (const track of tracks) { + const cover = track.album?.cover; + if (cover && !seenCovers.has(cover)) { + seenCovers.add(cover); + uniqueCovers.push(cover); + if (uniqueCovers.length >= 4) break; + } + } + + if (uniqueCovers.length >= 2) { + const count = uniqueCovers.length; + const itemsClass = count < 4 ? `items-${count}` : ''; + imageHTML = ` +
+ ${uniqueCovers.map(cover => ``).join('')} +
+ `; + } else if (uniqueCovers.length > 0) { + imageHTML = `${playlist.name}`; + } else { + imageHTML = `${playlist.name}`; + } + } + return `
- ${playlist.name} + ${imageHTML}