@inherits LayoutComponentBase @using NexusReader.Application.Abstractions.Services @using NexusReader.UI.Shared.Services @using NexusReader.UI.Shared.Components.Molecules @using NexusReader.UI.Shared.Components.Organisms @using Microsoft.Extensions.Logging @inject IPlatformService PlatformService @inject IFocusModeService FocusMode @inject IQuizStateService QuizService @inject IJSRuntime JS @inject IIdentityService IdentityService @inject NavigationManager NavigationManager @inject Microsoft.Extensions.Logging.ILogger Logger @implements IDisposable
@Body
Asystent AI
@if (!_isMobile) { }
Weryfikacja...
@Body
An unhandled error has occurred. Reload 🗙
@code { private string _platformClass = "platform-desktop"; private bool _isMobile = false; protected override void OnInitialized() { FocusMode.OnFocusModeChanged += StateHasChanged; QuizService.OnQuizUpdated += StateHasChanged; var context = PlatformService.GetDeviceContext(); if (context.IsSuccess) { _isMobile = context.Value.DeviceType switch { DeviceType.Phone or DeviceType.Tablet => true, _ => false }; _platformClass = _isMobile ? "platform-mobile" : "platform-desktop"; } } private async Task HandleLogout() { await IdentityService.LogoutAsync(); NavigationManager.NavigateTo("/", true); } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { try { var module = await JS.InvokeAsync("import", "./_content/NexusReader.UI.Shared/js/layoutResizer.js"); await module.InvokeVoidAsync("initResizer", ".app-container", "#sidebar-resizer", "--sidebar-width"); } catch (Exception ex) { Logger.LogError(ex, "Failed to initialize layout resizer JS module."); } } } public void Dispose() { FocusMode.OnFocusModeChanged -= StateHasChanged; QuizService.OnQuizUpdated -= StateHasChanged; } }