Skip to content

Commit 1c402ff

Browse files
committed
feat: 增加 OnToolbarRefreshCallback 回调方法
1 parent cbcfba4 commit 1c402ff

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/BootstrapBlazor/Components/Tab/Tab.razor.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,12 @@ public partial class Tab : IHandlerException
338338
[Parameter]
339339
public string? RefreshToolbarTooltipText { get; set; }
340340

341+
/// <summary>
342+
/// Gets or sets the refresh toolbar button click event callback. Default is null.
343+
/// </summary>
344+
[Parameter]
345+
public Func<Task>? OnToolbarRefreshCallback { get; set; }
346+
341347
[CascadingParameter]
342348
private Layout? Layout { get; set; }
343349

@@ -934,12 +940,16 @@ public async Task DragItemCallback(int originIndex, int currentIndex)
934940

935941
private string? GetIdByTabItem(TabItem item) => ComponentIdGenerator.Generate(item);
936942

937-
private Task OnRefreshAsync()
943+
private async Task OnRefreshAsync()
938944
{
939945
// refresh the active tab item
940946
var item = TabItems.FirstOrDefault(i => i.IsActive);
941947
item.Refresh(_cache);
942-
return Task.CompletedTask;
948+
949+
if (OnToolbarRefreshCallback != null)
950+
{
951+
await OnToolbarRefreshCallback();
952+
}
943953
}
944954

945955
/// <summary>

test/UnitTest/Components/TabTest.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1021,6 +1021,7 @@ public void BeforeNavigatorTemplate_Ok()
10211021
[Fact]
10221022
public async Task ShowToolbar_Ok()
10231023
{
1024+
var clicked = false;
10241025
var cut = Context.RenderComponent<BootstrapBlazorRoot>(pb =>
10251026
{
10261027
pb.AddChildContent<Tab>(pb =>
@@ -1032,6 +1033,11 @@ public async Task ShowToolbar_Ok()
10321033
pb.Add(a => a.Text, "Text1");
10331034
pb.Add(a => a.ChildContent, builder => builder.AddContent(0, "Test1"));
10341035
});
1036+
pb.Add(a => a.OnToolbarRefreshCallback, () =>
1037+
{
1038+
clicked = true;
1039+
return Task.CompletedTask;
1040+
});
10351041
});
10361042
});
10371043
cut.DoesNotContain("tabs-nav-toolbar");
@@ -1046,8 +1052,9 @@ public async Task ShowToolbar_Ok()
10461052
cut.Contains("tabs-nav-toolbar-fs");
10471053

10481054
// 点击刷新按钮
1049-
var button = cut.Find(".tabs-nav-toolbar-refresh > i");
1055+
var button = cut.Find(".tabs-nav-toolbar-refresh");
10501056
await cut.InvokeAsync(() => button.Click());
1057+
Assert.True(clicked);
10511058

10521059
tab.SetParametersAndRender(pb =>
10531060
{

0 commit comments

Comments
 (0)