@using LazyBear.MCP.Services.Logging @using LazyBear.MCP.Services.ToolRegistry @inject ToolRegistryService Registry @inject InMemoryLogSink LogSink @implements IDisposable @* Таб-навигация *@ @* Контент таба *@ @if (_activeTab == Tab.Overview) { } else if (_activeTab == Tab.Logs) { } else { } @code { private enum Tab { Overview, Logs, Settings } private Tab _activeTab = Tab.Overview; protected override void OnInitialized() { Registry.StateChanged += OnStateChanged; LogSink.OnLog += OnNewLog; } private void SetTab(Tab tab) { _activeTab = tab; StateHasChanged(); } private void OnStateChanged() { InvokeAsync(StateHasChanged); } private void OnNewLog(LogEntry _) { if (_activeTab == Tab.Logs) { InvokeAsync(StateHasChanged); } } public void Dispose() { Registry.StateChanged -= OnStateChanged; LogSink.OnLog -= OnNewLog; } }