From 25e81b41f0602d533edb174bc033f051054e274f Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 14:55:35 +0800 Subject: [PATCH 1/6] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/ContextMenu/ContextMenu.razor.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/BootstrapBlazor/Components/ContextMenu/ContextMenu.razor.scss b/src/BootstrapBlazor/Components/ContextMenu/ContextMenu.razor.scss index 9fe4719f40d..3d8e6cc4eef 100644 --- a/src/BootstrapBlazor/Components/ContextMenu/ContextMenu.razor.scss +++ b/src/BootstrapBlazor/Components/ContextMenu/ContextMenu.razor.scss @@ -8,4 +8,8 @@ min-height: var(--bb-cm-icon-min-height); display: inline-block; } + + .divider { + margin: 0.5rem 0; + } } From 01e62b77bea20d9f4bbf6af234d0e0af2e7877ae Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 14:55:49 +0800 Subject: [PATCH 2/6] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=20Refresh=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Tab/Tab.razor.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs index 33aebffd200..544d1348ef0 100644 --- a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs +++ b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs @@ -958,6 +958,12 @@ private async Task OnRefreshAsync() } } + /// + /// Refresh the tab item method + /// + /// + public void Refresh(TabItem item) => item.Refresh(_cache); + /// /// /// From 9b706e6f14441db28edae9a8afb5ed0705ef8469 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 14:56:16 +0800 Subject: [PATCH 3/6] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E5=8F=B3=E9=94=AE?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=88=B7=E6=96=B0=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Components/Samples/Tabs.razor | 3 +++ .../Components/Samples/Tabs.razor.cs | 9 +++++++++ src/BootstrapBlazor.Server/Locales/en-US.json | 1 + src/BootstrapBlazor.Server/Locales/zh-CN.json | 1 + 4 files changed, 14 insertions(+) diff --git a/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor b/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor index 4b1c93add90..fd3fb2ca47d 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor @@ -501,6 +501,7 @@ private void Navigation()
@Localizer["TabItem1Content"]
+
@Localizer["TabItem2Content"]
@@ -513,6 +514,8 @@ private void Navigation()
+ + diff --git a/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor.cs index 77eb539f128..737571a6762 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Tabs.razor.cs @@ -174,6 +174,15 @@ private Task OnSetTitle(string text) [NotNull] private Tab? _tab = null; + private Task OnRefrsh(ContextMenuItem item, object? context) + { + if (context is TabItem tabItem) + { + _tab.Refresh(tabItem); + } + return Task.CompletedTask; + } + private async Task OnClose(ContextMenuItem item, object? context) { if (context is TabItem tabItem) diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index 20eb4918929..024244ffdbe 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -2133,6 +2133,7 @@ "AttributeFullscreenToolbarButtonIcon": "Toolbar full screen button icon", "TabsToolbarDesc": "After clicking the button, the counter value increases, and clicking the Refresh button on the toolbar will reset the counter.", "AttributeOnToolbarRefreshCallback": "Click the toolbar refresh button callback method", + "ContextRefresh": "Refresh", "ContextClose": "Close", "ContextCloseOther": "Close Other Tabs", "ContextCloseAll": "Close All Tabs", diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index b30f29bf7ac..ee4b22c87e9 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -2133,6 +2133,7 @@ "AttributeFullscreenToolbarButtonIcon": "工具栏全屏按钮图标", "TabsToolbarDesc": "点击按钮计数器数值增加后,点击工具栏的 刷新 按钮计数器清零", "AttributeOnToolbarRefreshCallback": "点击工具栏刷新按钮回调方法", + "ContextRefresh": "刷新", "ContextClose": "关闭", "ContextCloseOther": "关闭其他", "ContextCloseAll": "关闭全部", From 3a82f09d5aaeeb554ed506693fd589d9aa9e56aa Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 14:59:28 +0800 Subject: [PATCH 4/6] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Tab/Tab.razor.cs | 15 +++++++++++---- .../Extensions/TabItemExtensions.cs | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs index 544d1348ef0..be2cf1bc303 100644 --- a/src/BootstrapBlazor/Components/Tab/Tab.razor.cs +++ b/src/BootstrapBlazor/Components/Tab/Tab.razor.cs @@ -950,11 +950,10 @@ private async Task OnRefreshAsync() { // refresh the active tab item var item = TabItems.FirstOrDefault(i => i.IsActive); - item.Refresh(_cache); - if (OnToolbarRefreshCallback != null) + if (item is not null) { - await OnToolbarRefreshCallback(); + await Refresh(item); } } @@ -962,7 +961,15 @@ private async Task OnRefreshAsync() /// Refresh the tab item method /// /// - public void Refresh(TabItem item) => item.Refresh(_cache); + public async Task Refresh(TabItem item) + { + item.Refresh(_cache); + + if (OnToolbarRefreshCallback != null) + { + await OnToolbarRefreshCallback(); + } + } /// /// diff --git a/src/BootstrapBlazor/Extensions/TabItemExtensions.cs b/src/BootstrapBlazor/Extensions/TabItemExtensions.cs index 75abc1a3391..d4236a96051 100644 --- a/src/BootstrapBlazor/Extensions/TabItemExtensions.cs +++ b/src/BootstrapBlazor/Extensions/TabItemExtensions.cs @@ -24,9 +24,9 @@ public static RenderFragment RenderContent(this TabItem item, ConcurrentDictiona builder.CloseComponent(); }; - public static void Refresh(this TabItem? item, ConcurrentDictionary cache) + public static void Refresh(this TabItem item, ConcurrentDictionary cache) { - if (item is not null && cache.TryGetValue(item, out var content)) + if (cache.TryGetValue(item, out var content)) { content.Render(); } From 0d0ae64901f6a7737df28456b392626d06070adb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 15:06:39 +0800 Subject: [PATCH 5/6] =?UTF-8?q?test:=20=E6=9B=B4=E6=96=B0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TabTest.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/test/UnitTest/Components/TabTest.cs b/test/UnitTest/Components/TabTest.cs index f32d7dbe880..48c013f74f4 100644 --- a/test/UnitTest/Components/TabTest.cs +++ b/test/UnitTest/Components/TabTest.cs @@ -7,7 +7,6 @@ using Bunit.TestDoubles; using Microsoft.AspNetCore.Components.Rendering; using System.Reflection; -using System.Threading.Tasks; using UnitTest.Misc; namespace UnitTest.Components; @@ -1100,6 +1099,11 @@ public async Task ShowToolbar_Ok() await cut.InvokeAsync(() => button.Click()); Assert.True(clicked); + clicked = false; + var item = cut.FindComponent(); + await cut.InvokeAsync(() => tab.Instance.Refresh(item.Instance)); + Assert.True(clicked); + tab.SetParametersAndRender(pb => { pb.Add(a => a.ShowRefreshToolbarButton, false); @@ -1111,13 +1115,6 @@ public async Task ShowToolbar_Ok() pb.Add(a => a.ShowFullscreenToolbarButton, false); }); cut.DoesNotContain("tabs-nav-toolbar-fs"); - - // 利用反射提高代码覆盖率 - var type = Type.GetType("BootstrapBlazor.Components.TabItemExtensions, BootstrapBlazor"); - Assert.NotNull(type); - var mi = type.GetMethod("Refresh", BindingFlags.Static | BindingFlags.Public); - Assert.NotNull(mi); - mi.Invoke(null, [null, null]); } class DisableTabItemButton : ComponentBase From 37e11d0212b14c9726e98ce6c43fe54eaac30d04 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sun, 23 Mar 2025 15:07:39 +0800 Subject: [PATCH 6/6] chore: bump version 9.5.0-beta13 --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index c7a6b4e7fe6..83172568a14 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.5.0-beta12 + 9.5.0-beta13