Skip to content

Commit ae5337d

Browse files
authored
feat: add OnMenuItemClicked,SelectedKeys,SelectedKeysChanged (#93)
1 parent aa95cb1 commit ae5337d

File tree

8 files changed

+44
-12
lines changed

8 files changed

+44
-12
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
Theme="MenuTheme.Light"
77
MenuAccordion
88
@bind-OpenKeys="openKeys"
9-
@bind-Collapsed="collapsed">
9+
@bind-Collapsed="collapsed"
10+
@bind-SelectedKeys=selectedKeys>
1011
<HeaderContentRender>
1112
<Menu Mode="MenuMode.Horizontal" Theme="MenuTheme.Dark">
1213
<MenuItem OnClick="ResetMenu">Refresh Menu</MenuItem>
@@ -49,6 +50,7 @@
4950

5051
private bool collapsed;
5152
private string[] openKeys = [];
53+
private string[] selectedKeys = ["welcome"];
5254

5355
protected override async Task OnInitializedAsync()
5456
{
@@ -57,7 +59,7 @@
5759
data[0].IconFont = "icon-tuichu";
5860
data.Insert(0, new MenuDataItem
5961
{
60-
TitleTemplate =@<span><Icon Type="user"></Icon> Custom Menu </span>,
62+
TitleTemplate =@<span><Icon Type="user"></Icon><span> Custom Menu </span</span>,
6163
});
6264
MenuData = data.ToArray();
6365
}

src/layout/src/BasicLayout.razor

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@
2222
SiderWidth="SiderWidth"
2323
Accordion="MenuAccordion"
2424
OnCollapse="HandleCollapse"
25-
OpenKeysChanged="OpenKeysChanged">
25+
OpenKeysChanged="OpenKeysChanged"
26+
OnMenuHeaderClick="@OnMenuHeaderClick"
27+
OnMenuItemClicked="OnMenuItemClicked"
28+
SelectedKeys="SelectedKeys"
29+
SelectedKeysChanged="SelectedKeysChanged"
30+
>
2631
</SiderMenu>
2732
</CascadingValue>
2833
</CascadingValue>

src/layout/src/BasicLayout.razor.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@ public partial class BasicLayout : IBasicLayout
5757
[Parameter] public string ColSize { get; set; } = "lg";
5858
[Parameter] public RenderFragment RightContentRender { get; set; }
5959
[Parameter] public RenderFragment HeaderContentRender { get; set; }
60-
[Inject] public ILogger<BasicLayout> Logger { get; set; }
60+
[Parameter] public string[] SelectedKeys { get; set; }
61+
[Parameter] public EventCallback<string[]> SelectedKeysChanged { get; set; }
62+
[Parameter] public EventCallback<MenuItem> OnMenuItemClicked { get; set; }
6163

6264
protected override void OnInitialized()
6365
{
64-
Logger.LogInformation("BasicLayout initialized.");
6566
base.OnInitialized();
6667
SetStyle();
6768
SetClassMap();
@@ -80,7 +81,7 @@ protected void SetStyle()
8081
{
8182
var hasLeftPadding = FixSiderbar && Layout != Layout.Top && !IsMobile;
8283
var paddingLeft = hasLeftPadding ? Collapsed ? 48 : SiderWidth : 0;
83-
Logger.LogInformation($"HasLeftPadding: {hasLeftPadding}, Collapsed: {Collapsed}, Padding: {paddingLeft}");
84+
8485
_genLayoutStyle = MenuRender ? $"padding-left: {paddingLeft}px; position: relative;" : "";
8586
_weakModeStyle = ColorWeak ? "filter: invert(80%);" : "";
8687
}

src/layout/src/SiderMenu/BaseMenu.razor

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
Style="@Style"
99
Accordion="@Accordion"
1010
Class="@ClassMapper.Class"
11-
OpenKeysChanged="OpenKeysChanged">
11+
OpenKeysChanged="OpenKeysChanged"
12+
OnMenuItemClicked="OnMenuItemClicked"
13+
SelectedKeys="SelectedKeys"
14+
SelectedKeysChanged="SelectedKeysChanged">
1215
@menuItemTemplate(MenuData, false)
1316
</Menu>
1417

src/layout/src/SiderMenu/BaseMenu.razor.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ internal interface IBaseMenu : IPureSettings
1414
EventCallback<bool> OnCollapse { get; }
1515
string[] OpenKeys { get; }
1616
EventCallback<string[]> OpenKeysChanged { get; set; }
17+
18+
string[] SelectedKeys { get; }
19+
EventCallback<string[]> SelectedKeysChanged { get; set; }
20+
21+
EventCallback<MenuItem> OnMenuItemClicked { get; set; }
1722
}
1823

1924
public partial class BaseMenu : IBaseMenu
@@ -28,11 +33,12 @@ public partial class BaseMenu : IBaseMenu
2833

2934
[Parameter] public bool Accordion { get; set; }
3035

31-
[Inject] public ILogger<BaseMenu> Logger { get; set; }
36+
[Parameter] public EventCallback<MenuItem> OnMenuItemClicked { get; set; }
37+
38+
[Parameter]
39+
public string[] SelectedKeys { get; set; } = [];
3240

33-
protected override void OnInitialized()
34-
{
35-
Logger.LogInformation("BaseMenu initialized.");
36-
}
41+
[Parameter]
42+
public EventCallback<string[]> SelectedKeysChanged { get; set; }
3743
}
3844
}

src/layout/src/SiderMenu/SiderMenu.razor

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
OpenKeys="OpenKeys"
3737
Accordion="@Accordion"
3838
OpenKeysChanged="OpenKeysChanged"
39+
OnMenuItemClicked="OnMenuItemClicked"
40+
SelectedKeys="SelectedKeys"
41+
SelectedKeysChanged="SelectedKeysChanged"
3942
Style="@("width: '100%'")" />
4043
</div>
4144

src/layout/src/SiderMenu/SiderMenu.razor.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,15 @@ public SiderTheme SiderTheme
6464
set => NavTheme = value == SiderTheme.Light ? MenuTheme.Light : MenuTheme.Dark;
6565
}
6666

67+
[Parameter]
68+
public string[] SelectedKeys { get; set; }
69+
70+
[Parameter]
71+
public EventCallback<string[]> SelectedKeysChanged { get; set; }
72+
73+
[Parameter]
74+
public EventCallback<MenuItem> OnMenuItemClicked { get; set; }
75+
6776
private async Task HandleOnCollapse(bool collapsed)
6877
{
6978
if (!IsMobile && OnCollapse.HasDelegate)

src/layout/src/TopNavHeader/TopNavHeader.razor.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ public partial class TopNavHeader : ITopNavHeader
3030
[Parameter] public bool Hide { get; set; }
3131
[Parameter] public List<RenderFragment> Links { get; set; }
3232
[Parameter] public EventCallback<string[]> OpenKeysChanged { get; set; }
33+
[Parameter] public string[] SelectedKeys { get; set; }
34+
[Parameter] public EventCallback<string[]> SelectedKeysChanged { get; set; }
35+
[Parameter] public EventCallback<MenuItem> OnMenuItemClicked { get; set; }
3336

3437
protected override void OnInitialized()
3538
{

0 commit comments

Comments
 (0)