diff --git a/src/lib/components/Album.svelte b/src/lib/components/Album.svelte
index b4e1b4c..3844195 100644
--- a/src/lib/components/Album.svelte
+++ b/src/lib/components/Album.svelte
@@ -2,6 +2,7 @@
import { spring } from 'svelte/motion'
import type { Album } from '$lib/types/lastfm'
import { audioPreview } from '$lib/stores/audio-preview'
+ import { nowPlayingStream } from '$lib/stores/now-playing-stream'
import NowPlaying from './NowPlaying.svelte'
interface AlbumProps {
@@ -81,16 +82,24 @@
const hasPreview = $derived(!!album?.appleMusicData?.previewUrl)
- // Debug log
+ // Subscribe to real-time now playing updates
+ let realtimeNowPlaying = $state<{ isNowPlaying: boolean; nowPlayingTrack?: string } | null>(null)
+
$effect(() => {
if (album) {
- console.log(`Album ${album.name}:`, {
- hasAppleMusicData: !!album.appleMusicData,
- previewUrl: album.appleMusicData?.previewUrl,
- hasPreview
+ const unsubscribe = nowPlayingStream.isAlbumPlaying.subscribe(checkAlbum => {
+ const status = checkAlbum(album.artist.name, album.name)
+ if (status !== null) {
+ realtimeNowPlaying = status
+ }
})
+ return unsubscribe
}
})
+
+ // Combine initial state with real-time updates
+ const isNowPlaying = $derived(realtimeNowPlaying?.isNowPlaying ?? album?.isNowPlaying ?? false)
+ const nowPlayingTrack = $derived(realtimeNowPlaying?.nowPlayingTrack ?? album?.nowPlayingTrack)
@@ -110,8 +119,8 @@
style="transform: scale({$scale})"
loading="lazy"
/>
- {#if album.isNowPlaying}
-
+ {#if isNowPlaying}
+
{/if}
{#if hasPreview && isHovering}