@inherits MainBase @implements IDisposable
@if (isMobileMenuOpen) { }
@code { private bool isMenuOpen = false; private bool isMobileMenuOpen = false; private string _username { get; set; } = ""; /// /// Close the menu. /// [JSInvokable] public void CloseMenu() { isMenuOpen = false; isMobileMenuOpen = false; StateHasChanged(); } /// /// Dispose method. /// public void Dispose() { NavigationService.LocationChanged -= LocationChanged; } /// protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); _username = GetUsername(); NavigationService.LocationChanged += LocationChanged; } /// protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) { await Js.InvokeVoidAsync("window.initTopMenu"); DotNetObjectReference objRef = DotNetObjectReference.Create(this); await Js.InvokeVoidAsync("window.registerClickOutsideHandler", objRef); } } private void LocationChanged(object? sender, LocationChangedEventArgs e) { isMenuOpen = false; isMobileMenuOpen = false; StateHasChanged(); } private void ToggleMenu() { isMenuOpen = !isMenuOpen; } private void ToggleMobileMenu() { isMobileMenuOpen = !isMobileMenuOpen; } }