@inherits LayoutComponentBase @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager Nav @inject IUserNotificationService UserNotificationService @implements IDisposable @using System.Security.Claims Timetracker @Body @code { private bool _drawerOpen = true; protected override void OnInitialized() { UserNotificationService.OnUserDeleted += HandleUserDeleted; } private async Task HandleUserDeleted(int deletedUserId) { var state = await AuthStateProvider.GetAuthenticationStateAsync(); var idClaim = state.User.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (idClaim != null && int.TryParse(idClaim, out var myId) && myId == deletedUserId) { await InvokeAsync(() => Nav.NavigateTo("/auth/logout", forceLoad: true)); } } public void Dispose() { UserNotificationService.OnUserDeleted -= HandleUserDeleted; } private readonly MudTheme _theme = new() { PaletteLight = new PaletteLight { Primary = "#3F51B5", PrimaryDarken = "#1A237E", PrimaryLighten = "#7986CB", Secondary = "#009688", SecondaryDarken = "#00695C", AppbarBackground = "#3F51B5", Background = "#F4F6F9", DrawerBackground = "#FFFFFF", Surface = "#FFFFFF", TextPrimary = "#212121", TextSecondary = "#757575", } }; private void ToggleDrawer() => _drawerOpen = !_drawerOpen; }