@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...
An unhandled error has occurred. Reload 🗙
@code { private string _platformClass = "platform-desktop"; private bool _isMobile = false; protected override void OnInitialized() { FocusMode.OnFocusModeChanged += HandleUpdate; QuizService.OnQuizUpdated += HandleUpdate; 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"; } } 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."); } } } private Task HandleUpdate() => InvokeAsync(StateHasChanged); public void Dispose() { FocusMode.OnFocusModeChanged -= HandleUpdate; QuizService.OnQuizUpdated -= HandleUpdate; } }