@inherits AliasVault.Client.Main.Pages.MainBase @implements IDisposable
@code { private bool IsUserMenuOpen { get; set; } = false; private bool IsMobileMenuOpen { get; set; } = false; private string Username { get; set; } = string.Empty; /// /// Close the menu. /// [JSInvokable] public void CloseUserMenu() { IsUserMenuOpen = false; StateHasChanged(); } /// /// Close the menu. /// [JSInvokable] public void CloseMobileMenu() { IsMobileMenuOpen = false; StateHasChanged(); } /// /// Dispose method. /// public void Dispose() { NavigationManager.LocationChanged -= LocationChanged; } /// protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); Username = await GetUsernameAsync(); NavigationManager.LocationChanged += LocationChanged; } /// protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) { await JsInteropService.InitTopMenu(); DotNetObjectReference objRef = DotNetObjectReference.Create(this); await JsInteropService.TopMenuClickOutsideHandler(objRef); } } private void LocationChanged(object? sender, LocationChangedEventArgs e) { IsUserMenuOpen = false; IsMobileMenuOpen = false; StateHasChanged(); } private void ToggleUserMenu() { IsUserMenuOpen = !IsUserMenuOpen; StateHasChanged(); } private void ToggleMobileMenu() { IsMobileMenuOpen = !IsMobileMenuOpen; StateHasChanged(); } }