@page "/robot-monitor" @rendermode InteractiveWebAssemblyNoPrerender @inject RobotApp.Client.Services.RobotMonitorService MonitorService @implements IAsyncDisposable Robot Monitor
@code { private RobotMonitorDto? _monitorData; private RobotApp.Client.Pages.Components.Monitor.RobotMonitorView? RobotMonitorViewRef; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { MonitorService.OnDataReceived += OnMonitorDataReceived; await MonitorService.StartAsync(); } } private void OnMonitorDataReceived(RobotMonitorDto data) { _monitorData = data; RobotMonitorViewRef?.UpdatePath(); InvokeAsync(StateHasChanged); } public async ValueTask DisposeAsync() { MonitorService.OnDataReceived -= OnMonitorDataReceived; await MonitorService.StopAsync(); } }