fix: NowPlaying re-renders on StateChanged so WaveformVisualizer gets live track params when streaming starts

This commit is contained in:
daniel-c-harvey
2026-06-17 13:44:08 -04:00
parent 43bbc8172b
commit 2071a821db
@@ -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). *@
<div class="now-playing-panel">
@@ -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;
}
}
}