diff --git a/LANCommander.Server/UI/Pages/Pages/Render.razor b/LANCommander.Server/UI/Pages/Pages/Render.razor index 8db1d5c7..008671cc 100644 --- a/LANCommander.Server/UI/Pages/Pages/Render.razor +++ b/LANCommander.Server/UI/Pages/Pages/Render.razor @@ -5,6 +5,7 @@ @using ZiggyCreatures.Caching.Fusion @inject PageService PageService @inject IFusionCache Cache +@inject NavigationManager NavigationManager @if (Page != null) { @@ -34,11 +35,22 @@ protected override async Task OnParametersSetAsync() { - var route = Route.TrimEnd('/').ToLower(); + if (Route == null) { + var firstParent = await PageService.Get(p => p.Parent == null).OrderBy(p => p.SortOrder).FirstOrDefaultAsync(); - Page = await Cache.GetOrSetAsync($"Page|{route}", async _ => + if (firstParent == null) + NavigationManager.NavigateTo("/"); + else + NavigationManager.NavigateTo($"/{firstParent.Route}"); + } + else { - return await PageService.Get(p => p.Route == $"Pages/{route}").FirstOrDefaultAsync(); - }); + var route = Route.TrimEnd('/').ToLower(); + + Page = await Cache.GetOrSetAsync($"Page|{route}", async _ => + { + return await PageService.Get(p => p.Route == $"Pages/{route}").FirstOrDefaultAsync(); + }); + } } }