...
This commit is contained in:
+23
-11
@@ -27,21 +27,23 @@
|
|||||||
</NavLink>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="nav-item px-3 nav-section-header">Documentation</div>
|
@if (groupedNotes == null)
|
||||||
|
|
||||||
@if (notes == null)
|
|
||||||
{
|
{
|
||||||
<div class="nav-item px-3"><span class="nav-link text-secondary">Loading...</span></div>
|
<div class="nav-item px-3"><span class="nav-link text-secondary">Loading...</span></div>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@foreach (var note in notes)
|
@foreach (var group in groupedNotes)
|
||||||
{
|
{
|
||||||
<div class="nav-item px-3 nav-item-doc">
|
<div class="nav-item px-3 nav-section-header">@group.Category</div>
|
||||||
<NavLink class="nav-link" href="@($"docs/{note.Slug}")">
|
@foreach (var note in group.Notes)
|
||||||
@note.Title
|
{
|
||||||
</NavLink>
|
<div class="nav-item px-3 nav-item-doc">
|
||||||
</div>
|
<NavLink class="nav-link" href="@($"docs/{note.Slug}")">
|
||||||
|
@note.Title
|
||||||
|
</NavLink>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</nav>
|
</nav>
|
||||||
@@ -49,7 +51,7 @@
|
|||||||
|
|
||||||
@code {
|
@code {
|
||||||
private bool collapseNavMenu = true;
|
private bool collapseNavMenu = true;
|
||||||
private List<Web.Models.NoteInfo>? notes;
|
private List<NoteGroup>? groupedNotes;
|
||||||
|
|
||||||
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
|
||||||
|
|
||||||
@@ -61,6 +63,16 @@
|
|||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
var index = await DocsService.GetIndexAsync();
|
var index = await DocsService.GetIndexAsync();
|
||||||
notes = index.Notes.OrderBy(n => n.Title).ToList();
|
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<Web.Models.NoteInfo> Notes { get; set; } = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user