@inject AuthenticationStateProvider AuthStateProvider
@inject IJSRuntime JSRuntime

@inherits BlazorAdmin.Helpers.BlazorLayoutComponent


<AuthorizeView Roles=@BlazorShared.Authorization.Constants.Roles.ADMINISTRATORS>
    <div class="sidebar">
        <NavMenu />
    </div>
</AuthorizeView>

<div class="main">
   
    <div class="top-row px-4">
        <a href="https://github.com/dotnet-architecture/eShopOnWeb" target="_blank" class="ml-md-auto">About eShopOnWeb</a>
    </div>

    <div class="content px-4">
        <Toast></Toast>
        @Body
    </div>
</div>
    @code
{
        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                var authState = await AuthStateProvider.GetAuthenticationStateAsync();

                if (authState.User == null)
                {
                    await new Route(JSRuntime).RouteOutside("/Identity/Account/Login");
                }
                CallRequestRefresh();
            }

            await base.OnAfterRenderAsync(firstRender);
        }
    }
