Skip to content

Commit c132947

Browse files
authored
feat(Layout): add OnCloseTabItemAsync parameter (#7023)
* feat(Layout): add OnCloseTabItemAsync parameter * chore: bump version 9.11.5-beta10 * test: 更新单元测试 * doc: 更新注释
1 parent f131098 commit c132947

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup Condition="'$(VisualStudioVersion)' == '17.0'">
4-
<Version>9.11.5-beta09</Version>
4+
<Version>9.11.5-beta10</Version>
55
</PropertyGroup>
66

77
<PropertyGroup Condition="'$(VisualStudioVersion)' == '18.0'">
8-
<Version>10.0.0-rc.2.1.8</Version>
8+
<Version>10.0.0-rc.2.1.9</Version>
99
</PropertyGroup>
1010

1111
<ItemGroup>

src/BootstrapBlazor/Components/Layout/Layout.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
ShowRefreshToolbarButton="ShowRefreshToolbarButton" ShowFullscreenToolbarButton="ShowFullscreenToolbarButton"
147147
RefreshToolbarButtonIcon="@RefreshToolbarButtonIcon" FullscreenToolbarButtonIcon="@FullscreenToolbarButtonIcon"
148148
RefreshToolbarTooltipText="@RefreshToolbarTooltipText" FullscreenToolbarTooltipText="@FullscreenToolbarTooltipText"
149-
OnToolbarRefreshCallback="OnToolbarRefreshCallback" TabHeader="TabHeader"
149+
OnToolbarRefreshCallback="OnToolbarRefreshCallback" TabHeader="TabHeader" OnCloseTabItemAsync="OnCloseTabItemAsync"
150150
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" NotFoundTabText="@NotFoundTabText"
151151
EnableErrorLogger="@EnableLogger" ErrorLoggerToastTitle="@ErrorLoggerToastTitle">
152152
</Tab>;

src/BootstrapBlazor/Components/Layout/Layout.razor.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ public partial class Layout : IHandlerException, ITabHeader
7878
[Parameter]
7979
public Func<Task>? OnToolbarRefreshCallback { get; set; }
8080

81+
/// <summary>
82+
/// 获得/设置 关闭标签页前回调方法
83+
/// </summary>
84+
/// <remarks>返回 false 时不关闭 <see cref="TabItem"/> 标签页</remarks>
85+
[Parameter]
86+
public Func<TabItem, Task<bool>>? OnCloseTabItemAsync { get; set; }
87+
8188
/// <summary>
8289
/// 获得/设置 侧边栏状态
8390
/// </summary>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public partial class Tab
123123
/// <summary>
124124
/// 关闭标签页回调方法
125125
/// </summary>
126-
/// <remarks>返回 false 时不关 <see cref="TabItem"/> 标签页</remarks>
126+
/// <remarks>返回 false 时不关闭 <see cref="TabItem"/> 标签页</remarks>
127127
[Parameter]
128128
public Func<TabItem, Task<bool>>? OnCloseTabItemAsync { get; set; }
129129

test/UnitTest/Components/LayoutTest.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public async Task TabStyle_Ok()
2525
pb.Add(a => a.OnToolbarRefreshCallback, () => Task.CompletedTask);
2626
pb.Add(a => a.RefreshToolbarTooltipText, "test-refresh-tooltip");
2727
pb.Add(a => a.FullscreenToolbarTooltipText, "test-fullscreen-tooltip");
28+
pb.Add(a => a.OnCloseTabItemAsync, tab => Task.FromResult(true));
2829
});
2930
Assert.DoesNotContain("tabs-chrome", cut.Markup);
3031
Assert.DoesNotContain("tabs-capsule", cut.Markup);
@@ -647,7 +648,7 @@ public void ErrorLogger_OnErrorHandleAsync_Button()
647648
var layout = cut.FindComponent<Layout>();
648649
layout.SetParametersAndRender(pb =>
649650
{
650-
pb.Add(a => a.OnErrorHandleAsync, null);
651+
pb.Add(a => a.OnErrorHandleAsync, null);
651652
});
652653
button = cut.Find("button");
653654

@@ -727,6 +728,6 @@ protected override void OnInitialized()
727728
var b = 0;
728729

729730
// 触发生命周期内异常
730-
var c = a / b;
731+
var c = a / b;
731732
}
732733
}

0 commit comments

Comments
 (0)