From c30b205d9c2a83044fa9160228dd35517d4a74f0 Mon Sep 17 00:00:00 2001 From: Markury Date: Sat, 4 Oct 2025 22:25:07 -0400 Subject: [PATCH] feat(ui): add page decoration component for collection views --- src/lib/components/CollectionView.svelte | 7 ++- .../components/DeezerCollectionView.svelte | 3 + src/lib/components/PageDecoration.svelte | 61 +++++++++++++++++++ .../albums/[artist]/[album]/+page.svelte | 1 + static/vectors/title-decoration.svg | 11 ++++ 5 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/lib/components/PageDecoration.svelte create mode 100644 static/vectors/title-decoration.svg diff --git a/src/lib/components/CollectionView.svelte b/src/lib/components/CollectionView.svelte index 3a46084..82da94a 100644 --- a/src/lib/components/CollectionView.svelte +++ b/src/lib/components/CollectionView.svelte @@ -3,6 +3,7 @@ import { convertFileSrc } from '@tauri-apps/api/core'; import { playback } from '$lib/stores/playback'; import ContextMenu, { type MenuItem } from '$lib/components/ContextMenu.svelte'; + import PageDecoration from '$lib/components/PageDecoration.svelte'; interface Props { title: string; @@ -14,6 +15,7 @@ onTrackClick?: (index: number) => void; showAlbumColumn?: boolean; useSequentialNumbers?: boolean; + decorationLabel?: string; } let { @@ -25,7 +27,8 @@ selectedTrackIndex = null, onTrackClick, showAlbumColumn = false, - useSequentialNumbers = false + useSequentialNumbers = false, + decorationLabel = 'LOCAL PLAYLIST' }: Props = $props(); let contextMenu = $state<{ x: number; y: number; trackIndex: number } | null>(null); @@ -75,6 +78,8 @@ } + +
{#if coverArtPath} diff --git a/src/lib/components/DeezerCollectionView.svelte b/src/lib/components/DeezerCollectionView.svelte index 69dfa0b..65b2d98 100644 --- a/src/lib/components/DeezerCollectionView.svelte +++ b/src/lib/components/DeezerCollectionView.svelte @@ -1,5 +1,6 @@ + +
{#if coverImageUrl} diff --git a/src/lib/components/PageDecoration.svelte b/src/lib/components/PageDecoration.svelte new file mode 100644 index 0000000..5c65e74 --- /dev/null +++ b/src/lib/components/PageDecoration.svelte @@ -0,0 +1,61 @@ + + +
+
+ + + + +
+
//{label}//
+
+ + diff --git a/src/routes/albums/[artist]/[album]/+page.svelte b/src/routes/albums/[artist]/[album]/+page.svelte index 061243d..8090887 100644 --- a/src/routes/albums/[artist]/[album]/+page.svelte +++ b/src/routes/albums/[artist]/[album]/+page.svelte @@ -79,6 +79,7 @@ {selectedTrackIndex} onTrackClick={handleTrackClick} showAlbumColumn={false} + decorationLabel="ALBUM OVERVIEW" /> {/if}
diff --git a/static/vectors/title-decoration.svg b/static/vectors/title-decoration.svg new file mode 100644 index 0000000..8238479 --- /dev/null +++ b/static/vectors/title-decoration.svg @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file