@inherits LayoutComponentBase @using NexusReader.UI.Shared.Components.Molecules @using NexusReader.UI.Shared.Components.Atoms @using NexusReader.Application.Abstractions.Services @using NexusReader.UI.Shared.Services
@Body
@code { [Inject] private AuthenticationStateProvider AuthStateProvider { get; set; } = default!; [Inject] private IIdentityService IdentityService { get; set; } = default!; [Inject] private NavigationManager NavigationManager { get; set; } = default!; private bool _isSyncing = false; protected override async Task OnInitializedAsync() { if (_isSyncing) return; var authState = await AuthStateProvider.GetAuthenticationStateAsync(); if (!authState.User.Identity?.IsAuthenticated ?? true) { _isSyncing = true; // Try to sync with server cookie await IdentityService.GetProfileAsync(); } } private async Task HandleLogout() { await IdentityService.LogoutAsync(); NavigationManager.NavigateTo("/", true); } }