fix: use parseArtists() on album detail page — stops Au/Ra splitting on /

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Sonnet 4.6 committed 2026-05-23 14:13:02 +02:00
1 parent 467ee8a0fe
commit a6e6af0333
1 file changed
+4 -6
+4 -6
View File
@@ -2,7 +2,7 @@ import { S } from './state.js';
import { esc, formatDur, toast } from './utils.js'; import { esc, formatDur, toast } from './utils.js';
import { api, coverUrl, itunesSearch, itunesLookupAlbum, itunesLookupArtistSongs, itunesLookupArtistAlbums, itunesTopCharts, itunesTopSongs } from './api.js'; import { api, coverUrl, itunesSearch, itunesLookupAlbum, itunesLookupArtistSongs, itunesLookupArtistAlbums, itunesTopCharts, itunesTopSongs } from './api.js';
// Circular imports — safe (only used inside function bodies) // Circular imports — safe (only used inside function bodies)
import { playQueue, dlSongLocal, playPreview, toggleStar } from './player.js'; import { playQueue, dlSongLocal, playPreview, toggleStar, parseArtists } from './player.js';
import { showCtxMenu, openEditPlModal, openDlModal, closeSidebar, switchNavMode } from './ui.js'; import { showCtxMenu, openEditPlModal, openDlModal, closeSidebar, switchNavMode } from './ui.js';
import { closeNowPlaying, closeNpMenu } from './nowplaying.js'; import { closeNowPlaying, closeNpMenu } from './nowplaying.js';
import { makeCard, makeAlbumCard, makeSongItem, makeGlobalTrackItem, mkSection } from './components.js'; import { makeCard, makeAlbumCard, makeSongItem, makeGlobalTrackItem, mkSection } from './components.js';
@@ -624,11 +624,9 @@ export async function loadAlbumDetail(album) {
album._fromArtist ? navigate('artist-detail', album._fromArtist) : navigate('albums'); album._fromArtist ? navigate('artist-detail', album._fromArtist) : navigate('albums');
document.getElementById('album-detail-name').textContent = album.name; document.getElementById('album-detail-name').textContent = album.name;
const artistEl = document.getElementById('album-detail-artist'); const artistEl = document.getElementById('album-detail-artist');
const albumArtistParts = (album.artist || '').split(/\s*(?:\/|•)\s*/).filter(Boolean); artistEl.innerHTML = parseArtists(album)
artistEl.innerHTML = albumArtistParts.map((name, i) => { .map(a => `<span class="song-link" onclick="event.stopPropagation();s_goArtist(event,'${esc(a.name)}','${esc(a.id||'')}')">${esc(a.name)}</span>`)
const aid = i === 0 ? (album.artistId || '') : ''; .join('<span style="color:var(--text3)"> • </span>') || '';
return `<span class="song-link" onclick="event.stopPropagation();s_goArtist(event,'${esc(name)}','${esc(aid)}')">${esc(name)}</span>`;
}).join('<span style="color:var(--text3)"> • </span>') || '';
const cw = document.getElementById('album-cover-wrap'); const cw = document.getElementById('album-cover-wrap');
const cv = coverUrl(album.coverArt, 512); const cv = coverUrl(album.coverArt, 512);
cw.innerHTML = cv ? `<img src="${cv}" onerror="this.parentNode.innerHTML='<div class=\\'no-art\\'>💿</div>'">` : '<div class="no-art">💿</div>'; cw.innerHTML = cv ? `<img src="${cv}" onerror="this.parentNode.innerHTML='<div class=\\'no-art\\'>💿</div>'">` : '<div class="no-art">💿</div>';