feat(AlbumCard): add showGenre prop to hide genre overlay
- Add showGenre prop (default true) to AlbumCard
- Make genre prop optional
- Hide genre and favorite button in LocalLibrary albums
- VirtualizedAlbumList passes showGenre={false}, showFavorite={false}
- Add spacer to keep Play button centered when favorite is hidden
This commit is contained in:
1 parent
65adf352b6
commit
0f2c47ff92
2 files changed
+22
-10
No files matched your search
@@ -14,7 +14,7 @@
|
||||
artwork: string;
|
||||
title: string;
|
||||
artist: string;
|
||||
genre: string;
|
||||
genre?: string;
|
||||
releaseDate?: string;
|
||||
quality?: string;
|
||||
size?: 'standard' | 'large';
|
||||
@@ -29,6 +29,7 @@
|
||||
onDownload?: () => void;
|
||||
showFavorite?: boolean;
|
||||
favoriteEnabled?: boolean;
|
||||
showGenre?: boolean;
|
||||
isAlbumFullyDownloaded?: boolean;
|
||||
onOpenContainingFolder?: () => void;
|
||||
onReDownloadAlbum?: () => void;
|
||||
@@ -55,6 +56,7 @@
|
||||
onDownload,
|
||||
showFavorite,
|
||||
favoriteEnabled,
|
||||
showGenre = true,
|
||||
isAlbumFullyDownloaded = false,
|
||||
onOpenContainingFolder,
|
||||
onReDownloadAlbum,
|
||||
@@ -199,12 +201,14 @@
|
||||
<!-- Action Overlay -->
|
||||
{#if hasOverlay}
|
||||
<div class="action-overlay" class:menu-open={menuOpen}>
|
||||
<div class="overlay-info">
|
||||
<span class="overlay-genre">{genre}</span>
|
||||
{#if formattedDate}
|
||||
<span class="overlay-date">{formattedDate}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{#if showGenre && (genre || formattedDate)}
|
||||
<div class="overlay-info">
|
||||
{#if genre}<span class="overlay-genre">{genre}</span>{/if}
|
||||
{#if formattedDate}
|
||||
<span class="overlay-date">{formattedDate}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<div class="action-buttons">
|
||||
{#if showFavoriteButton}
|
||||
<button
|
||||
@@ -219,6 +223,9 @@
|
||||
>
|
||||
<Heart size={18} fill={isFavorite ? 'white' : 'none'} color="white" />
|
||||
</button>
|
||||
{:else}
|
||||
<!-- Spacer to keep Play button centered -->
|
||||
<div class="overlay-btn--spacer"></div>
|
||||
{/if}
|
||||
{#if onPlay}
|
||||
<button class="overlay-btn" type="button" onclick={handlePlay} title="Play">
|
||||
@@ -431,6 +438,12 @@
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.overlay-btn--spacer {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.overlay-info {
|
||||
align-self: flex-start;
|
||||
width: 100%;
|
||||
|
||||
@@ -312,11 +312,10 @@
|
||||
artwork={getArtworkUrl(album.artwork_path)}
|
||||
title={album.title}
|
||||
artist={album.artist}
|
||||
genre={"Unknown genre"}
|
||||
quality={getQualityBadge(album)}
|
||||
size="large"
|
||||
showFavorite={true}
|
||||
favoriteEnabled={false}
|
||||
showFavorite={false}
|
||||
showGenre={false}
|
||||
onPlay={() => onAlbumPlay(album)}
|
||||
onPlayNext={() => onAlbumQueueNext(album)}
|
||||
onPlayLater={() => onAlbumQueueLater(album)}
|
||||
|
||||
Reference in new issue
Block a user