@using NexusReader.UI.Shared.Services @using NexusReader.Application.Abstractions.Services @using Microsoft.Extensions.Logging @using System.Linq @inject IFocusModeService FocusMode @inject IIdentityService IdentityService @inject NavigationManager NavigationManager @inject IThemeService ThemeService @inject IKnowledgeService KnowledgeService @inject ILogger Logger @implements IDisposable @code { protected override void OnInitialized() { FocusMode.OnFocusModeChanged += HandleUpdate; ThemeService.OnThemeChanged += HandleThemeChanged; } private async Task HandleClearCache() { Logger.LogInformation("[IntelligenceToolbar] Requesting cache clear..."); var result = await KnowledgeService.ClearCacheAsync(); if (result.IsSuccess) { Logger.LogInformation("[IntelligenceToolbar] Cache cleared successfully."); } else { Logger.LogWarning("[IntelligenceToolbar] Cache clear failed: {Errors}", string.Join("; ", result.Errors.Select(e => e.Message))); } } private Task HandleUpdate() => InvokeAsync(StateHasChanged); private void HandleThemeChanged(ThemeMode mode) => InvokeAsync(StateHasChanged); public void Dispose() { FocusMode.OnFocusModeChanged -= HandleUpdate; ThemeService.OnThemeChanged -= HandleThemeChanged; } }