From 739d6c6e81e98e54dfcc94da664208ccc3287769 Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Wed, 17 Jun 2026 13:24:13 -0400 Subject: [PATCH] Subscribe NowPlayingCard to player StateChanged so it re-renders on track change --- .../Controls/NowPlayingCard.razor | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/DeepDrftPublic.Client/Controls/NowPlayingCard.razor b/DeepDrftPublic.Client/Controls/NowPlayingCard.razor index a3731cd..0f29610 100644 --- a/DeepDrftPublic.Client/Controls/NowPlayingCard.razor +++ b/DeepDrftPublic.Client/Controls/NowPlayingCard.razor @@ -1,4 +1,5 @@ @using DeepDrftPublic.Client.Services +@implements IDisposable
Now Playing
@(Player?.CurrentTrack?.TrackName ?? "Nothing playing")
@@ -12,4 +13,29 @@ @code { [CascadingParameter] public IStreamingPlayerService? Player { get; set; } -} \ No newline at end of file + + private IStreamingPlayerService? _subscribedPlayer; + + protected override void OnParametersSet() + { + if (Player != null && !ReferenceEquals(Player, _subscribedPlayer)) + { + if (_subscribedPlayer != null) + _subscribedPlayer.StateChanged -= OnPlayerStateChanged; + + Player.StateChanged += OnPlayerStateChanged; + _subscribedPlayer = Player; + } + } + + private void OnPlayerStateChanged() => InvokeAsync(StateHasChanged); + + public void Dispose() + { + if (_subscribedPlayer != null) + { + _subscribedPlayer.StateChanged -= OnPlayerStateChanged; + _subscribedPlayer = null; + } + } +}