Skip to content

Commit 6d0fc0b

Browse files
authored
support custom menu title template (#86)
1 parent 8dd6df6 commit 6d0fc0b

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

src/layout/example/AntDesign.ProLayout.Wasm/Shared/ProLayout.razor

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@
5050
protected override async Task OnInitializedAsync()
5151
{
5252
await base.OnInitializedAsync();
53-
var data = await HttpClient.GetFromJsonAsync<MenuDataItem[]>("data/menu.json");
54-
MenuData = data;
53+
var data = await HttpClient.GetFromJsonAsync<List<MenuDataItem>>("data/menu.json");
54+
data.Insert(0, new MenuDataItem
55+
{
56+
TitleTemplate =@<span><Icon Type="user"></Icon> Custom Menu </span>,
57+
});
58+
MenuData = data.ToArray();
5559
}
5660
}

src/layout/src/SiderMenu/BaseMenu.razor

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@
1414

1515
@code
1616
{
17-
RenderFragment title(MenuDataItem menuItem) {
18-
17+
RenderFragment title(MenuDataItem menuItem)
18+
{
19+
if (menuItem.TitleTemplate != null)
20+
{
21+
return menuItem.TitleTemplate;
22+
}
1923
return @<span>
2024
@if (!string.IsNullOrEmpty(menuItem.Icon))
2125
{
@@ -26,7 +30,7 @@
2630
;
2731
}
2832

29-
RenderFragment menuItemTemplate(MenuDataItem[] items, bool isChildren)
33+
RenderFragment menuItemTemplate(IEnumerable<MenuDataItem> items, bool isChildren)
3034
{
3135
@if (items == null)
3236
{

src/layout/src/SiderMenu/MenuDataItem.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.AspNetCore.Components.Routing;
1+
using Microsoft.AspNetCore.Components;
2+
using Microsoft.AspNetCore.Components.Routing;
23

34
namespace AntDesign.ProLayout
45
{
@@ -15,5 +16,6 @@ public class MenuDataItem
1516
public string Path { get; set; }
1617
public string[] ParentKeys { get; set; }
1718
public NavLinkMatch Match { get; set; } = NavLinkMatch.All;
19+
public RenderFragment TitleTemplate { get; set; }
1820
}
1921
}

0 commit comments

Comments
 (0)