Fix Download Discography button on library artist page

The button called openDiscographyModal() which expected discography
data in artistsPageState — but the library page never populated it.
Now fetches discography on-demand from /api/artist/<id>/discography
when called from the library page, using the artist's DB ID and name.
pull/253/head
Broque Thomas 1 month ago
parent ce9ba42a91
commit 77e4671236

@ -40949,7 +40949,7 @@ function applyDiscographyFilters() {
// ==================== Download Discography Modal ====================
function openDiscographyModal() {
async function openDiscographyModal() {
// Support both Artists search page and Library artist detail page
let artist = artistsPageState.selectedArtist;
let discography = artistsPageState.artistDiscography;
@ -40961,13 +40961,28 @@ function openDiscographyModal() {
const libName = artistDetailPageState.currentArtistName;
if (libId && libName) {
artist = { id: libId, name: libName, image_url: document.getElementById('artist-detail-image')?.src || '' };
// Library page stores discography in the same artistsPageState when viewing from library
discography = artistsPageState.artistDiscography;
// If discography not loaded, fetch it on-demand
if (!discography) {
try {
showToast('Loading discography...', 'info');
const res = await fetch(`/api/artist/${libId}/discography?artist_name=${encodeURIComponent(libName)}`);
const data = await res.json();
if (data && (data.albums || data.eps || data.singles)) {
discography = data;
artistsPageState.artistDiscography = data;
artistsPageState.selectedArtist = artist;
}
} catch (e) {
console.error('Failed to load discography:', e);
}
}
}
}
if (!artist || !discography) {
showToast('No discography data available', 'error');
showToast('No discography data available. Artist may not be on Spotify/iTunes.', 'error');
return;
}

Loading…
Cancel
Save