From db865292193bc1f706d3ede9a6a5ae176e7a9b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20T=C3=A4kker?= Date: Tue, 2 Jun 2026 10:34:15 +0200 Subject: [PATCH] Fixed tracks on artist page --- app/pages/artist/[id].vue | 150 -------------------------------- app/pages/artist/[id]/index.vue | 125 ++++++++++++++++++-------- 2 files changed, 87 insertions(+), 188 deletions(-) delete mode 100644 app/pages/artist/[id].vue diff --git a/app/pages/artist/[id].vue b/app/pages/artist/[id].vue deleted file mode 100644 index 9ef5d8a..0000000 --- a/app/pages/artist/[id].vue +++ /dev/null @@ -1,150 +0,0 @@ - - - - - diff --git a/app/pages/artist/[id]/index.vue b/app/pages/artist/[id]/index.vue index cd03b21..ed51e39 100644 --- a/app/pages/artist/[id]/index.vue +++ b/app/pages/artist/[id]/index.vue @@ -2,12 +2,40 @@ const route = useRoute() const id = computed(() => route.params.id) -const { data: artistData } = await useApiFetch(`/artists/${id.value}`) +const { data: artistData } = await useApiFetch(`/artists/${id.value}`) + +const { data: albumsData } = await useApiFetch( + `/artists/${id.value}/albums`, +) + const { data: tracksData } = await useApiFetch( `/artists/${id.value}/tracks`, ) -const { playAlbum, playAlbumAtIndex } = usePlayer() +const chunkedTracks = computed(() => { + const SIZE = 3 + const chunks = [] + + for (let i = 0; i < tracksData.value.length; i += SIZE) { + chunks.push(tracksData.value.slice(i, i + SIZE)) + } + + return chunks +}) + +const slider = useTemplateRef("slider") + +const scrollWidth = () => { + if (!slider.value) return 0 + + const el = Array.isArray(slider.value) ? slider.value[0] : slider.value + + if (!el) return 0 + + return el.offsetWidth +} + +const { playAlbum, playShuffledAlbum, playAlbumAtIndex } = usePlayer()