From 0a192645d6c80b6af6c6867f4065fba71508ba1c Mon Sep 17 00:00:00 2001 From: XShine555 Date: Thu, 24 Sep 2026 13:59:54 +0200 Subject: [PATCH] Drive the theme accent from the app layout instead of the player --- web-player/src/lib/player/player.svelte.ts | 3 --- web-player/src/routes/(app)/+layout.svelte | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/web-player/src/lib/player/player.svelte.ts b/web-player/src/lib/player/player.svelte.ts index c7c9633..b35ea56 100644 --- a/web-player/src/lib/player/player.svelte.ts +++ b/web-player/src/lib/player/player.svelte.ts @@ -1,9 +1,7 @@ import { browser } from '$app/environment'; -import { accent } from '$lib/theme/accent.svelte'; import { dialog } from '$lib/state/dialog.svelte'; import type { Track } from '$lib/types'; import { readStorage, writeStorage } from '$lib/utils/storage'; -import { trackCover } from '$lib/utils/hrefs'; import { ListenTracker } from './listenTracker'; import { mediaSession } from './mediaSession'; import { ProgressClock } from './progressClock'; @@ -140,7 +138,6 @@ class PlayerState { } #announce(track: Track) { - accent.follow(trackCover(track.id, 'small'), () => this.currentId === track.id); mediaSession.setTrack(track); } diff --git a/web-player/src/routes/(app)/+layout.svelte b/web-player/src/routes/(app)/+layout.svelte index 1c257fc..199a601 100644 --- a/web-player/src/routes/(app)/+layout.svelte +++ b/web-player/src/routes/(app)/+layout.svelte @@ -12,6 +12,8 @@ import { queuePanel } from '$lib/state/panels.svelte'; import { liked } from '$lib/state/liked.svelte'; import { createPlaylistModal } from '$lib/state/panels.svelte'; + import { accent } from '$lib/theme/accent.svelte'; + import { trackCover } from '$lib/utils/hrefs'; import { trackNavigation } from '$lib/state/history.svelte'; import { restoreScroll } from '$lib/state/scroll'; import { page } from '$app/state'; @@ -36,6 +38,11 @@ if (data.lastPlayedTrack) player.hydrate(data.lastPlayedTrack); }); + $effect(() => { + const id = player.currentId; + if (id) accent.follow(trackCover(id, 'small'), () => player.currentId === id); + }); + let queueAutoOpened = false; $effect(() => { if (!player.playing || queueAutoOpened) return;