From 041992a0ef0c83b8f71644c4d2ce04e24227407d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 24 Apr 2025 14:11:16 +0800 Subject: [PATCH 01/17] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=A7=BB=E9=99=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Button/PopConfirmButton.razor.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index a361d3a9ac3..688901c7085 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -140,6 +140,12 @@ export function dispose(id) { popover.dispose(); } + if (el) { + EventHandler.off(el, 'show.bs.popover') + EventHandler.off(el, 'inserted.bs.popover') + EventHandler.off(el, 'hide.bs.popover') + } + const { PopConfirmButton } = window.BootstrapBlazor; PopConfirmButton.dispose(id, () => { EventHandler.off(document, 'click', confirm.closeConfirm) From 176e9a03aed6ad42e1f145ae31896fabb20abe2a Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 24 Apr 2025 14:11:42 +0800 Subject: [PATCH 02/17] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20TriggerClose?= =?UTF-8?q?Callback=20=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Button/PopConfirmButton.razor.js | 15 +++++++++---- .../Components/Button/PopConfirmButtonBase.cs | 21 ++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index 688901c7085..71cd8c5241f 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -8,7 +8,7 @@ const config = { popoverSelector: '.popover-confirm.show' } -export function init(id) { +export function init(id, invoke, closeCallback = null) { const el = document.getElementById(id) if (el == null) { return @@ -18,7 +18,9 @@ export function init(id) { const confirm = { el, - container: el.querySelector('[data-bb-toggle="confirm"]') + container: el.querySelector('[data-bb-toggle="confirm"]'), + invoke, + closeCallback } Data.set(id, confirm) @@ -79,7 +81,12 @@ export function init(id) { if (element) { const popover = bootstrap.Popover.getInstance(element); if (popover) { - popover.hide() + popover.hide(); + + const id = element.getAttribute('id'); + const com = Data.get(id); + const { invoke, closeCallback } = com; + invoke.invokeMethodAsync(closeCallback); } } }) @@ -135,7 +142,7 @@ export function dispose(id) { const confirm = Data.get(id) Data.remove(id) - const { popover } = confirm ?? {}; + const { popover, el } = confirm ?? {}; if (popover) { popover.dispose(); } diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs index db9af328978..cb6db6ba28a 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs @@ -8,7 +8,7 @@ namespace BootstrapBlazor.Components; /// /// 确认弹窗按钮组件 /// -[BootstrapModuleAutoLoader("Button/PopConfirmButton.razor.js")] +[BootstrapModuleAutoLoader("Button/PopConfirmButton.razor.js", JSObjectReference = true)] public abstract class PopConfirmButtonBase : ButtonBase { /// @@ -168,4 +168,23 @@ protected override void OnParametersSet() Placement = Placement.Auto; } } + + /// + /// + /// + /// + protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, OnClose == null ? null : nameof(TriggerCloseCallback)); + + /// + /// Trigger OnClose event callback. + /// + /// + [JSInvokable] + public async Task TriggerCloseCallback() + { + if (OnClose != null) + { + await OnClose(); + } + } } From a6878ae6b51e083f97b5c054506f5671d9ef8543 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 24 Apr 2025 14:14:31 +0800 Subject: [PATCH 03/17] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E4=BF=9D=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Button/PopConfirmButton.razor.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index 71cd8c5241f..8dad2883f9e 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -84,9 +84,13 @@ export function init(id, invoke, closeCallback = null) { popover.hide(); const id = element.getAttribute('id'); - const com = Data.get(id); - const { invoke, closeCallback } = com; - invoke.invokeMethodAsync(closeCallback); + if (id) { + const com = Data.get(id); + const { invoke, closeCallback } = com; + if (invoke) { + invoke.invokeMethodAsync(closeCallback); + } + } } } }) From 6945375234da7f62d7a84cb96ae9f586077ac56a Mon Sep 17 00:00:00 2001 From: AiZhen <53560110+AiYuZhen@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:01:42 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Ajax=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=20body=20=E5=86=85=E5=AE=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#5874)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 重构代码 * chore: bump version 9.5.11-beta02 --------- Co-Authored-By: AiZhen Co-Authored-By: Argo Zhang --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- src/BootstrapBlazor/wwwroot/modules/ajax.js | 26 ++++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index b7f5fa4a195..c197f11ead4 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.5.11-beta01 + 9.5.11-beta02 diff --git a/src/BootstrapBlazor/wwwroot/modules/ajax.js b/src/BootstrapBlazor/wwwroot/modules/ajax.js index 921e9dfbd29..7d5919e7a7a 100644 --- a/src/BootstrapBlazor/wwwroot/modules/ajax.js +++ b/src/BootstrapBlazor/wwwroot/modules/ajax.js @@ -19,16 +19,24 @@ if (headers['Content-Type'] === void 0) { headers['Content-Type'] = 'application/json; charset=utf-8' } - const contentType = headers['Content-Type']; - let postData = JSON.stringify(data); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - postData = new URLSearchParams(data).toString(); - } - result = await fetch(url, { + + const fetchOptions = { method: method, - headers: headers, - body: postData - }); + headers: headers + } + + if (method === 'PUT' || method === 'POST') { + const contentType = headers['Content-Type']; + let postData = null; + if (data) { + postData = JSON.stringify(data); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + postData = new URLSearchParams(data).toString(); + } + fetchOptions.body = postData; + } + } + result = await fetch(url, fetchOptions); if (toJson === true) { result = await result.json() } From f0a52e432749d46462e3a4edde0ba57dc415ae4c Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:02:49 +0800 Subject: [PATCH 05/17] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E7=A9=BA?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Button/PopConfirmButton.razor.cs | 11 +++++++++-- .../Components/Button/PopConfirmButtonBase.cs | 5 ----- .../Components/Table/TableExtensionButton.razor.cs | 5 ++++- .../Components/Table/TableToolbar.razor.cs | 5 ++++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs index b2eac4c8548..462ee86d020 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs @@ -97,7 +97,11 @@ private async Task OnClickConfirm() IsDisabled = true; IsAsyncLoading = true; StateHasChanged(); - await Task.Run(() => InvokeAsync(OnConfirm)); + + if (OnConfirm != null) + { + await Task.Run(() => InvokeAsync(OnConfirm)); + } if (ButtonType == ButtonType.Submit) { @@ -112,7 +116,10 @@ private async Task OnClickConfirm() } else { - await OnConfirm(); + if (OnConfirm != null) + { + await OnConfirm(); + } if (ButtonType == ButtonType.Submit) { await TrySubmit(); diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs index cb6db6ba28a..e82bd127c8f 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs @@ -57,7 +57,6 @@ public abstract class PopConfirmButtonBase : ButtonBase /// 获得/设置 点击确认时回调方法 /// [Parameter] - [NotNull] public Func? OnConfirm { get; set; } /// @@ -70,7 +69,6 @@ public abstract class PopConfirmButtonBase : ButtonBase /// 获得/设置 点击关闭时回调方法 /// [Parameter] - [NotNull] public Func? OnClose { get; set; } /// @@ -160,9 +158,6 @@ protected override void OnParametersSet() ConfirmIcon ??= IconTheme.GetIconByKey(ComponentIcons.PopConfirmButtonConfirmIcon); Trigger ??= "click"; - OnClose ??= () => Task.CompletedTask; - OnConfirm ??= () => Task.CompletedTask; - if (Placement != Placement.Top && Placement != Placement.Right && Placement != Placement.Bottom && Placement != Placement.Left) { Placement = Placement.Auto; diff --git a/src/BootstrapBlazor/Components/Table/TableExtensionButton.razor.cs b/src/BootstrapBlazor/Components/Table/TableExtensionButton.razor.cs index edaea66007c..abd09ce06a2 100644 --- a/src/BootstrapBlazor/Components/Table/TableExtensionButton.razor.cs +++ b/src/BootstrapBlazor/Components/Table/TableExtensionButton.razor.cs @@ -61,7 +61,10 @@ await OnClickButton(new TableCellButtonArgs() private async Task OnClickConfirm(TableCellPopConfirmButton b) { - await b.OnConfirm(); + if (b.OnConfirm != null) + { + await b.OnConfirm(); + } if (OnClickButton != null) { diff --git a/src/BootstrapBlazor/Components/Table/TableToolbar.razor.cs b/src/BootstrapBlazor/Components/Table/TableToolbar.razor.cs index 737b72b0f4d..51c630176ec 100644 --- a/src/BootstrapBlazor/Components/Table/TableToolbar.razor.cs +++ b/src/BootstrapBlazor/Components/Table/TableToolbar.razor.cs @@ -91,7 +91,10 @@ private async Task OnConfirm(TableToolbarPopConfirmButton button) await button.OnClick.InvokeAsync(); } - await button.OnConfirm(); + if (button.OnConfirm != null) + { + await button.OnConfirm(); + } // 传递当前选中行给回调委托方法 if (button.OnConfirmCallback != null) From 353f6720a28ab4c236c53640b35bd72c5cefc3af Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:05:15 +0800 Subject: [PATCH 06/17] =?UTF-8?q?perf:=20=E6=8F=90=E9=AB=98=E6=80=A7?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index 8dad2883f9e..cf2b6f02bce 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -87,7 +87,7 @@ export function init(id, invoke, closeCallback = null) { if (id) { const com = Data.get(id); const { invoke, closeCallback } = com; - if (invoke) { + if (invoke && closeCallback) { invoke.invokeMethodAsync(closeCallback); } } From 81fd48b7a93dbac8f629203835657d46726c29c4 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:05:56 +0800 Subject: [PATCH 07/17] chore: bump version 9.5.11-beta04 --- 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 ec7d975f848..496df7c93e2 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.5.11-beta03 + 9.5.11-beta04 From 18e03d72959673464dae24a005a25cc672a634c7 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:34:39 +0800 Subject: [PATCH 08/17] =?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/PopConfirmButtonTest.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/UnitTest/Components/PopConfirmButtonTest.cs b/test/UnitTest/Components/PopConfirmButtonTest.cs index da5b9d908b2..10dd0c82c00 100644 --- a/test/UnitTest/Components/PopConfirmButtonTest.cs +++ b/test/UnitTest/Components/PopConfirmButtonTest.cs @@ -242,7 +242,13 @@ await cut.InvokeAsync(() => [Fact] public void Trigger_Ok() { - var cut = Context.RenderComponent(); + var cut = Context.RenderComponent(pb => + { + pb.Add(a => a.OnClose, () => + { + return Task.CompletedTask; + }); + }); Assert.DoesNotContain("data-bs-trigger", cut.Markup); cut.SetParametersAndRender(pb => From becbb3138bdfabbe8aba9a62a09ba9a22ad5bfac Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:46:49 +0800 Subject: [PATCH 09/17] =?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/TableTest.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 6cbde42b495..4da25ec0317 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -2360,6 +2360,7 @@ public async Task CustomerToolbarPopConfirmButton_Ok() { var clicked = false; var clickCallback = false; + var confirmCallback = false; var localizer = Context.Services.GetRequiredService>(); var cut = Context.RenderComponent(pb => { @@ -2390,15 +2391,21 @@ public async Task CustomerToolbarPopConfirmButton_Ok() clickCallback = true; return Task.CompletedTask; })); + builder.AddAttribute(4, nameof(TableToolbarPopConfirmButton.OnConfirm), new Func(() => + { + confirmCallback = true; + return Task.CompletedTask; + })); builder.CloseComponent(); }); }); }); var button = cut.FindComponent(); - await cut.InvokeAsync(() => button.Instance.OnConfirm.Invoke()); + await cut.InvokeAsync(() => button.Instance.OnConfirm!.Invoke()); Assert.True(clickCallback); Assert.True(clicked); + Assert.True(confirmCallback); } [Fact] From 4ba6facaf64d903b94a677fd4e416bf9fcac48d3 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:50:41 +0800 Subject: [PATCH 10/17] =?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/PopConfirmButtonTest.cs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/test/UnitTest/Components/PopConfirmButtonTest.cs b/test/UnitTest/Components/PopConfirmButtonTest.cs index 10dd0c82c00..da5b9d908b2 100644 --- a/test/UnitTest/Components/PopConfirmButtonTest.cs +++ b/test/UnitTest/Components/PopConfirmButtonTest.cs @@ -242,13 +242,7 @@ await cut.InvokeAsync(() => [Fact] public void Trigger_Ok() { - var cut = Context.RenderComponent(pb => - { - pb.Add(a => a.OnClose, () => - { - return Task.CompletedTask; - }); - }); + var cut = Context.RenderComponent(); Assert.DoesNotContain("data-bs-trigger", cut.Markup); cut.SetParametersAndRender(pb => From 9ff9e9e3e79a101eed595afe196ea2a763ba6580 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 11:59:27 +0800 Subject: [PATCH 11/17] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20data-bb-?= =?UTF-8?q?close=20=E6=A0=87=E7=AD=BE=20=E6=8F=90=E9=AB=98=E6=80=A7?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Button/PopConfirmButton.razor | 1 + .../Components/Button/PopConfirmButton.razor.cs | 2 ++ .../Components/Button/PopConfirmButton.razor.js | 3 ++- src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor index 19572d4546f..be939936c7a 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor @@ -16,6 +16,7 @@ else RenderFragment RenderComponent => @ @if(IsAsyncLoading) { diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs index 462ee86d020..aac36be9c63 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.cs @@ -69,6 +69,8 @@ protected override void OnParametersSet() private string? ConfirmString => OnBeforeClick != null ? "true" : null; + private string? TriggerCloseString => OnClose != null ? "true" : null; + /// /// 显示确认弹窗方法 /// diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index cf2b6f02bce..509319b45bd 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -87,7 +87,8 @@ export function init(id, invoke, closeCallback = null) { if (id) { const com = Data.get(id); const { invoke, closeCallback } = com; - if (invoke && closeCallback) { + const trigger = element.getAttribute('data-bb-close') === 'true'; + if (invoke && trigger) { invoke.invokeMethodAsync(closeCallback); } } diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs index e82bd127c8f..d646af29f78 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButtonBase.cs @@ -168,7 +168,7 @@ protected override void OnParametersSet() /// /// /// - protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, OnClose == null ? null : nameof(TriggerCloseCallback)); + protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, nameof(TriggerCloseCallback)); /// /// Trigger OnClose event callback. From 2b7bd330f0c49e23a716070d94c522518a6ad00c Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:07:41 +0800 Subject: [PATCH 12/17] =?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/PopConfirmButtonTest.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/UnitTest/Components/PopConfirmButtonTest.cs b/test/UnitTest/Components/PopConfirmButtonTest.cs index da5b9d908b2..46f02f131cf 100644 --- a/test/UnitTest/Components/PopConfirmButtonTest.cs +++ b/test/UnitTest/Components/PopConfirmButtonTest.cs @@ -29,6 +29,7 @@ public async Task Show_Ok() cut.Contains("fa-solid fa-xmark"); cut.Contains("fa-solid fa-check"); + cut.DoesNotContain("data-bb-close=\"true\""); // Show var button = cut.Find("div"); @@ -84,6 +85,7 @@ await cut.InvokeAsync(() => return Task.FromResult(true); }); }); + cut.Contains("data-bb-close=\"true\""); // 默认设置增加 shadow 样式 Assert.Contains("data-bs-custom-class=\"test-custom-class shadow\"", cut.Markup); From de0ad754f1a30bea99cb4bf871f825740bb2e920 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:09:11 +0800 Subject: [PATCH 13/17] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=20OnClose=20?= =?UTF-8?q?=E5=8D=95=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/TableTest.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 4da25ec0317..5d834385397 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -2406,6 +2406,10 @@ public async Task CustomerToolbarPopConfirmButton_Ok() Assert.True(clickCallback); Assert.True(clicked); Assert.True(confirmCallback); + + clicked = false; + await cut.InvokeAsync(() => button.Instance.TriggerCloseCallback()); + Assert.True(clicked); } [Fact] From df39876c7c6881d851055230ce2351d5ff842cbb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:16:20 +0800 Subject: [PATCH 14/17] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=20TriggerClose?= =?UTF-8?q?Callback=20=E6=96=B9=E6=B3=95=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/PopConfirmButtonTest.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/UnitTest/Components/PopConfirmButtonTest.cs b/test/UnitTest/Components/PopConfirmButtonTest.cs index 46f02f131cf..37ca60e1138 100644 --- a/test/UnitTest/Components/PopConfirmButtonTest.cs +++ b/test/UnitTest/Components/PopConfirmButtonTest.cs @@ -89,6 +89,10 @@ await cut.InvokeAsync(() => // 默认设置增加 shadow 样式 Assert.Contains("data-bs-custom-class=\"test-custom-class shadow\"", cut.Markup); + close = false; + await cut.InvokeAsync(() => popButton.Instance.TriggerCloseCallback()); + Assert.True(close); + // 移除 shadow 样式 popButton.SetParametersAndRender(pb => { @@ -104,6 +108,7 @@ await cut.InvokeAsync(() => }); // Close + close = false; buttons = cut.FindAll(".popover-confirm-buttons button"); await cut.InvokeAsync(() => { From 754c42b2270654b3303666f66e6438be4aa96204 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:17:47 +0800 Subject: [PATCH 15/17] chore: bump version 9.5.11-beta05 --- 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 496df7c93e2..076d95a7ca0 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.5.11-beta04 + 9.5.11-beta05 From bd4b62899b5618b2c7fae4d92ff309188fe20c03 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:23:19 +0800 Subject: [PATCH 16/17] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js index 509319b45bd..5444af61044 100644 --- a/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js +++ b/src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js @@ -8,7 +8,7 @@ const config = { popoverSelector: '.popover-confirm.show' } -export function init(id, invoke, closeCallback = null) { +export function init(id, invoke, closeCallback) { const el = document.getElementById(id) if (el == null) { return From 47c929896f0d14f1f3085333cd73e191c7311f25 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 25 Apr 2025 12:25:25 +0800 Subject: [PATCH 17/17] =?UTF-8?q?test:=20=E6=B6=88=E9=99=A4=E8=AD=A6?= =?UTF-8?q?=E5=91=8A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TableTest.cs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 5d834385397..5f379e286f1 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -2406,10 +2406,6 @@ public async Task CustomerToolbarPopConfirmButton_Ok() Assert.True(clickCallback); Assert.True(clicked); Assert.True(confirmCallback); - - clicked = false; - await cut.InvokeAsync(() => button.Instance.TriggerCloseCallback()); - Assert.True(clicked); } [Fact] @@ -5381,7 +5377,7 @@ public async Task Delete_Ok() await cut.InvokeAsync(input.Instance.OnToggleClick); var button = cut.FindComponent>(); - await cut.InvokeAsync(() => button.Instance.OnConfirm.Invoke()); + await cut.InvokeAsync(() => button.Instance.OnConfirm!.Invoke()); Assert.Single(items); } @@ -5431,7 +5427,7 @@ public async Task OnDeleteAsync_Ok() await cut.InvokeAsync(input.Instance.OnToggleClick); var button = cut.FindComponent>(); - await cut.InvokeAsync(() => button.Instance.OnConfirm.Invoke()); + await cut.InvokeAsync(() => button.Instance.OnConfirm!.Invoke()); var row = cut.FindAll("tbody tr"); Assert.Single(row); @@ -6210,7 +6206,7 @@ public async Task DynamicContext_Add() await cut.InvokeAsync(() => table.Instance.AddAsync()); var delete = cut.FindComponent>(); - await cut.InvokeAsync(() => delete.Instance.OnConfirm()); + await cut.InvokeAsync(() => delete.Instance.OnConfirm!.Invoke()); } [Fact] @@ -6964,13 +6960,13 @@ public void OnConfirm_Ok() // 选一个 var input = cut.FindComponents>()[1]; cut.InvokeAsync(input.Instance.OnToggleClick); - cut.InvokeAsync(() => deleteButton.Instance.OnConfirm()); + cut.InvokeAsync(() => deleteButton.Instance.OnConfirm!.Invoke()); table.SetParametersAndRender(pb => { pb.Add(a => a.PageItemsSource, [1, 2, 4, 8]); }); - cut.InvokeAsync(() => deleteButton.Instance.OnConfirm()); + cut.InvokeAsync(() => deleteButton.Instance.OnConfirm!.Invoke()); } [Fact] @@ -7095,7 +7091,7 @@ public async Task IsExcel_Ok() await cut.InvokeAsync(() => table.Instance.AddAsync()); var delete = cut.FindComponent>(); - await cut.InvokeAsync(() => delete.Instance.OnConfirm()); + await cut.InvokeAsync(() => delete.Instance.OnConfirm!.Invoke()); } [Fact]