feat(web): cover art on Wanted + Discover album rows

Wanted API returns rgMbid/type/year; Wanted rows show a cover thumb and open
the album modal. Discover suggested-album rows get a cover thumb too. Completes
cover art across the app (artist detail, Library, modals, Wanted, Discover).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan
2026-07-12 15:37:02 +02:00
parent 76eab9e703
commit c027945191
3 changed files with 58 additions and 15 deletions
+12 -9
View File
@@ -5,6 +5,7 @@ import { PageHead } from "../_ui/page-head";
import { SectionHeader } from "../_ui/section-header";
import { ArtistModal } from "../_ui/artist-modal";
import { AlbumModal } from "../_ui/album-modal";
import { CoverArt } from "../_ui/cover-art";
type Suggestion = {
id: string;
@@ -189,15 +190,17 @@ export function DiscoverClient() {
{feed.albums.map((s) => (
<li key={s.id} className="list-row">
<div className="main">
<div className="rtitle">
<button className="linkish" onClick={() => setAlbumModal(s)}>
{s.album}
</button>{" "}
<span className="artist">· {s.artistName}</span>
</div>
<div className="rmeta">
<span className="score">score {s.score.toFixed(2)}</span>
</div>
<button className="disco-open" onClick={() => setAlbumModal(s)} aria-label={`Open ${s.album ?? ""}`}>
<CoverArt rgMbid={s.rgMbid} alt={s.album ?? ""} className="thumb" />
<span>
<span className="rtitle">
{s.album} <span className="artist">· {s.artistName}</span>
</span>
<span className="rmeta">
<span className="score">score {s.score.toFixed(2)}</span>
</span>
</span>
</button>
</div>
<div className="actions">
<button className="btn sm" onClick={() => act(s.id, "want")}>