diff --git a/src/lib/adapters/qobuzAdapters.ts b/src/lib/adapters/qobuzAdapters.ts index ffa8efdcb..444803b70 100644 --- a/src/lib/adapters/qobuzAdapters.ts +++ b/src/lib/adapters/qobuzAdapters.ts @@ -260,6 +260,7 @@ function toArtistAlbumSummary(album: QobuzAlbum): ArtistAlbumSummary { title: album.title, artwork, year: album.release_date_original?.split('-')[0], + releaseDate: album.release_date_original, quality, genre: album.genre?.name || "Unknown genre" }; diff --git a/src/lib/components/AlbumCard.svelte b/src/lib/components/AlbumCard.svelte index be1005ac6..c52baa308 100644 --- a/src/lib/components/AlbumCard.svelte +++ b/src/lib/components/AlbumCard.svelte @@ -15,6 +15,7 @@ title: string; artist: string; genre: string; + releaseDate?: string; quality?: string; size?: 'standard' | 'large'; searchId?: string; @@ -40,6 +41,7 @@ title, artist, genre, + releaseDate, quality, size = 'standard', searchId, @@ -90,6 +92,19 @@ imageError = true; } + function formatReleaseDate(dateStr: string | undefined): string { + if (!dateStr) return ''; + const date = new Date(dateStr); + if (isNaN(date.getTime())) return ''; + return date.toLocaleDateString('en-US', { + month: 'short', + day: 'numeric', + year: 'numeric' + }); + } + + const formattedDate = $derived(formatReleaseDate(releaseDate)); + async function handleToggleFavorite(event: MouseEvent) { event.stopPropagation(); if (!albumId || !favoriteAvailable) return; @@ -184,7 +199,12 @@ {#if hasOverlay}
-
{genre}
+
+ {genre} + {#if formattedDate} + {formattedDate} + {/if} +
{#if showFavoriteButton}