@inherits LayoutComponentBase
@inject NavigationManager Navigation
@inject IJSRuntime JS
@implements IDisposable
@code {
private bool drawerOpen = true;
protected override void OnInitialized()
{
Navigation.LocationChanged += OnLocationChanged;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (!firstRender)
return;
var viewportWidth = await JS.InvokeAsync("taxbaikAdminSession.getViewportWidth");
drawerOpen = viewportWidth >= 960;
StateHasChanged();
}
private string DrawerClass => drawerOpen ? "admin-drawer open" : "admin-drawer";
private void OnLocationChanged(object? sender, LocationChangedEventArgs args)
{
_ = InvokeAsync(() => JS.InvokeVoidAsync("taxbaikAdminSession.showLoading"));
}
private void ToggleDrawer() => drawerOpen = !drawerOpen;
public void Dispose()
{
Navigation.LocationChanged -= OnLocationChanged;
}
}