Skip to content

Commit 14871c4

Browse files
authored
feat(Layout): add ShowTabItemClose parameter (#4449)
* refactor: 增加部分 Tab 参数 * test: 增加单元测试
1 parent ab93093 commit 14871c4

File tree

3 files changed

+59
-2
lines changed

3 files changed

+59
-2
lines changed

src/BootstrapBlazor/Components/Layout/Layout.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,12 @@
118118
@<main class="@MainClassString">
119119
@if (UseTabSet)
120120
{
121-
<Tab ClickTabToNavigation="true" ShowExtendButtons="true" ShowClose="true" AllowDrag="AllowDragTab"
121+
<Tab ClickTabToNavigation="ClickTabToNavigation"
122+
ShowExtendButtons="ShowTabExtendButtons" ShowClose="ShowTabItemClose" AllowDrag="AllowDragTab"
122123
AdditionalAssemblies="@AdditionalAssemblies" NotFoundTabText="@NotFoundTabText"
123124
DefaultUrl="@TabDefaultUrl" ExcludeUrls="@ExcludeUrls" IsOnlyRenderActiveTab="IsOnlyRenderActiveTab"
124-
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!" />
125+
Body="@Main" NotAuthorized="NotAuthorized!" NotFound="NotFound!">
126+
</Tab>
125127
}
126128
else
127129
{

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,24 @@ public partial class Layout : IHandlerException
181181
[Parameter]
182182
public string TabDefaultUrl { get; set; } = "";
183183

184+
/// <summary>
185+
/// 获得/设置 标签是否显示关闭按钮 默认 true
186+
/// </summary>
187+
[Parameter]
188+
public bool ShowTabItemClose { get; set; } = true;
189+
190+
/// <summary>
191+
/// 获得/设置 标签是否显示扩展按钮 默认 true
192+
/// </summary>
193+
[Parameter]
194+
public bool ShowTabExtendButtons { get; set; } = true;
195+
196+
/// <summary>
197+
/// 获得/设置 点击标签页是否切换地址栏 默认 true
198+
/// </summary>
199+
[Parameter]
200+
public bool ClickTabToNavigation { get; set; } = true;
201+
184202
/// <summary>
185203
/// 获得/设置 授权回调方法多用于权限控制
186204
/// </summary>

test/UnitTest/Components/LayoutTest.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,43 @@ public void UseTabSet_Menus()
218218
cut.WaitForAssertion(() => cut.Contains("<div class=\"tabs-body-content\">Binder</div>"));
219219
}
220220

221+
[Fact]
222+
public void UseTabSet_ShowTabExtendButtons()
223+
{
224+
var cut = Context.RenderComponent<Layout>(pb =>
225+
{
226+
pb.Add(a => a.UseTabSet, true);
227+
pb.Add(a => a.AdditionalAssemblies, new Assembly[] { GetType().Assembly });
228+
pb.Add(a => a.ShowTabExtendButtons, false);
229+
});
230+
cut.DoesNotContain("<div class=\"nav-link-bar dropdown dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">");
231+
}
232+
233+
[Fact]
234+
public void UseTabSet_ShowCloseButton()
235+
{
236+
var cut = Context.RenderComponent<Layout>(pb =>
237+
{
238+
pb.Add(a => a.UseTabSet, true);
239+
pb.Add(a => a.AdditionalAssemblies, new Assembly[] { GetType().Assembly });
240+
pb.Add(a => a.ShowTabItemClose, false);
241+
});
242+
cut.DoesNotContain("<span class=\"tabs-item-close\"");
243+
}
244+
245+
[Fact]
246+
public void UseTabSet_ClickTabToNavigation()
247+
{
248+
var cut = Context.RenderComponent<Layout>(pb =>
249+
{
250+
pb.Add(a => a.UseTabSet, true);
251+
pb.Add(a => a.AdditionalAssemblies, new Assembly[] { GetType().Assembly });
252+
pb.Add(a => a.ClickTabToNavigation, false);
253+
});
254+
var tab = cut.FindComponent<Tab>();
255+
Assert.False(tab.Instance.ClickTabToNavigation);
256+
}
257+
221258
[Fact]
222259
public void IsFixedHeader_OK()
223260
{

0 commit comments

Comments
 (0)