From c0279451911413905660344c7d14d3683c139e30 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sun, 12 Jul 2026 15:37:02 +0200 Subject: [PATCH] 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) --- web/src/app/api/wanted/route.ts | 3 ++ web/src/app/discover/discover-client.tsx | 21 +++++----- web/src/app/wanted/wanted-client.tsx | 49 +++++++++++++++++++++--- 3 files changed, 58 insertions(+), 15 deletions(-) diff --git a/web/src/app/api/wanted/route.ts b/web/src/app/api/wanted/route.ts index 8fdd1e8..1fda9ce 100644 --- a/web/src/app/api/wanted/route.ts +++ b/web/src/app/api/wanted/route.ts @@ -15,6 +15,9 @@ export async function GET() { currentQualityClass: r.currentQualityClass, lastSearchedAt: r.lastSearchedAt, watchedArtistId: r.watchedArtistId, + rgMbid: r.rgMbid, + primaryType: r.primaryType, + firstReleaseDate: r.firstReleaseDate, })), }); } diff --git a/web/src/app/discover/discover-client.tsx b/web/src/app/discover/discover-client.tsx index 652dc73..40af92a 100644 --- a/web/src/app/discover/discover-client.tsx +++ b/web/src/app/discover/discover-client.tsx @@ -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) => (
  • -
    - {" "} - · {s.artistName} -
    -
    - score {s.score.toFixed(2)} -
    +
    {stateLabel(w)} @@ -99,6 +110,32 @@ export function WantedClient() { ))} )} + + {open ? ( + setOpen(null)} + album={{ + rgMbid: open.rgMbid, + album: open.album, + artist: open.artistName, + year: open.firstReleaseDate?.slice(0, 4) ?? null, + type: open.primaryType, + }} + status={{stateLabel(open)}} + actions={ + + } + /> + ) : null}
    ); }