@using MoonCore.Exceptions @using Moonlight.Client.Interfaces @using Moonlight.Client.Services @using Moonlight.Client.UI.Partials @using Moonlight.Shared.Misc @using Moonlight.Client.UI.Components @inherits LayoutComponentBase @inject IServiceProvider ServiceProvider @inject ILogger Logger @inject FrontendConfiguration Configuration @Configuration.Title @if (IsLoading) {
} else if (CurrentScreen != null) { @CurrentScreen } else {
@Body
} @code { // Mobile navigation public event Func OnStateChanged; public bool ShowMobileNavigation { get; private set; } = false; public async Task ToggleMobileNavigation() { ShowMobileNavigation = !ShowMobileNavigation; await OnStateChanged(); } // App loaders & screens private bool IsLoading = true; private RenderFragment? CurrentScreen; protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) return; await Load(); } public async Task Load() { IsLoading = true; await InvokeAsync(StateHasChanged); // IsLoading = false; await InvokeAsync(StateHasChanged); } }