From 2071a821db71b1669f65005155288ed1fe27d3c1 Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Wed, 17 Jun 2026 13:44:08 -0400 Subject: [PATCH] fix: NowPlaying re-renders on StateChanged so WaveformVisualizer gets live track params when streaming starts --- .../Controls/NowPlaying.razor | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/DeepDrftPublic.Client/Controls/NowPlaying.razor b/DeepDrftPublic.Client/Controls/NowPlaying.razor index 1b70ba0..06e2168 100644 --- a/DeepDrftPublic.Client/Controls/NowPlaying.razor +++ b/DeepDrftPublic.Client/Controls/NowPlaying.razor @@ -1,4 +1,5 @@ @using DeepDrftPublic.Client.Services +@implements IDisposable @* Hero-right panel (owns the navy backdrop + clipping, formerly Home.razor's .hero-right wrapper). *@
@@ -39,4 +40,29 @@ @code { [CascadingParameter] public IStreamingPlayerService? Player { get; set; } + + 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; + } + } }