@inherits LayoutComponentBase @using BlazorFrontend.Providers @using Microsoft.AspNetCore.Components.Authorization @inject AuthenticationStateProvider AuthStateProvider
@if (_isReady) { @Body } else {
}
@inject BlazorFrontend.Services.LibraryApiClient ApiClient @inject IJSRuntime JS @code { private bool _isReady; private int _unreadCount; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { var jwtProvider = AuthStateProvider as JwtAuthenticationStateProvider; if (jwtProvider != null) { await jwtProvider.LoadTokenAsync(); // Fetch unread count if authenticated var authState = await AuthStateProvider.GetAuthenticationStateAsync(); if (authState.User.Identity?.IsAuthenticated == true) { _unreadCount = await ApiClient.GetUnreadNotificationCountAsync(); // Update FCM Token try { var token = await JS.InvokeAsync("window.getFcmToken"); if (!string.IsNullOrEmpty(token)) { await ApiClient.UpdateFcmTokenAsync(token); } } catch (Exception ex) { Console.WriteLine($"Error updating FCM token: {ex.Message}"); } } } _isReady = true; StateHasChanged(); } } }