Impossible de charger cet album.
'; return; } root.innerHTML = html; root.querySelector('#back')!.addEventListener('click', () => history.back()); (root.querySelector('#albumCover') as HTMLImageElement).src = album.imageUrl; root.querySelector('#albumKicker')!.textContent = album.year ? `Album · ${album.year}` : 'Album'; root.querySelector('#albumTitle')!.textContent = album.name; root.querySelector('#launchBtnIcon')!.innerHTML = PLAY_ICON_SVG; if (album.artistName) { const artistEl = root.querySelector('#albumArtist')!; artistEl.textContent = album.artistName; artistEl.classList.remove('hide'); } (root.querySelector('#embyLink') as HTMLAnchorElement).href = album.embyUrl; const listEl = root.querySelector('#trackList')!; const launchBtn = root.querySelector('#launchBtn') as HTMLButtonElement; const launchBtnLabel = root.querySelector('#launchBtnLabel')!; if (!tracks.length) { listEl.innerHTML = 'Aucun morceau dans cet album.
'; root.querySelector('#searchInput')!.remove(); launchBtn.disabled = true; return; } // aria-label reflects whether a listen party is already active *at // render time* - a harmless, occasionally-stale label (see // refreshLabels() below for when it's corrected). The actual behavior // on click always re-checks getActiveMusicPartyId() fresh, so clicking // never does the wrong thing even if the label hasn't caught up yet // (e.g. someone hit "Quitter" on the bar while this page was already // open). Icon-only buttons (play vs plus, mirroring the same two // states) - the label lives in aria-label/title for accessibility // rather than as visible text, now that there's one per track instead // of one per page (see docs/architecture.md's "Music UI rework"). const startLabel = 'Écouter ensemble'; const addLabel = 'Ajouter à la file'; const startAlbumLabel = 'Écouter cet album'; const addAlbumLabel = "Ajouter l'album à la file"; listEl.innerHTML = tracks.map((t) => `