From eb47a42f15094798b76a16a9f9c5fd2e8e443656 Mon Sep 17 00:00:00 2001 From: Honey Date: Sat, 6 Jun 2026 00:56:33 +0200 Subject: [PATCH] fix: album detail header re-renders with sort tags after songs load; search artist uses dispArtistById Co-Authored-By: Claude Sonnet 4.6 --- src/views.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/views.js b/src/views.js index 8f87d83..7df37fb 100644 --- a/src/views.js +++ b/src/views.js @@ -665,6 +665,13 @@ export async function loadAlbumDetail(album) { const songs = r.album?.song || []; const totalMin = Math.round(songs.reduce((s,t) => s+(t.duration||0), 0) / 60); document.getElementById('album-detail-stats').textContent = `${songs.length} Titel · ${r.album.year||''} · ${totalMin} Min.`; + // Re-render header after songs load — by now overrides cache is ready and songs carry sortAlbum/sortArtist + if (songs[0]) { + document.getElementById('album-detail-name').textContent = dispAlbum(songs[0]) || dispAlbumName(album.name); + artistEl.innerHTML = parseArtists(songs[0]) + .map(a => `${esc(dispArtistById(a.id, a.name))}`) + .join(' • ') || ''; + } document.getElementById('btn-play-album').onclick = () => playQueue(songs, 0); document.getElementById('btn-dl-album').onclick = () => { songs.forEach((s,i) => setTimeout(() => dlSongLocal(s), i*400)); @@ -1005,7 +1012,7 @@ export async function doLocalSearch(q, el) { const s = mkSection('Künstler'); const g = document.createElement('div'); g.className = 'scroll-row'; artists.forEach(a => { - const c = makeCard(a.name, a.albumCount+' Alben', null, '🎤'); + const c = makeCard(dispArtistById(a.id, a.name), a.albumCount+' Alben', null, '🎤'); c.classList.add('artist-card'); c.onclick = () => navigate('artist-detail', a); g.appendChild(c);