@inject Web.Services.DocsService DocsService @code { private bool collapseNavMenu = true; private List? groupedNotes; private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; private void ToggleNavMenu() { collapseNavMenu = !collapseNavMenu; } protected override async Task OnInitializedAsync() { var index = await DocsService.GetIndexAsync(); groupedNotes = (index.Notes ?? new()) .GroupBy(n => string.IsNullOrEmpty(n.Category) ? "Uncategorized" : n.Category) .OrderBy(g => g.Key) .Select(g => new NoteGroup { Category = g.Key, Notes = g.OrderBy(n => n.Title).ToList() }) .ToList(); } private class NoteGroup { public string Category { get; set; } = ""; public List Notes { get; set; } = new(); } }