From c0e59a4b9d31881d0b91f8a5800d4c9c98a5f227 Mon Sep 17 00:00:00 2001 From: momiji-gz302 <2648863351@qq.com> Date: Tue, 29 Jul 2025 11:32:47 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(Message):=20Add=20=E2=80=9DDismissMode?= =?UTF-8?q?=E2=80=9C=20in=20MessageOption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Message/Message.razor.cs | 2 ++ .../Components/Message/Message.razor.js | 5 ++++- .../Components/Message/MessageOption.cs | 5 +++++ src/BootstrapBlazor/Enums/MessageShowMode.cs | 15 +++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Message/Message.razor.cs b/src/BootstrapBlazor/Components/Message/Message.razor.cs index e70cfd1667e..4f25bb97256 100644 --- a/src/BootstrapBlazor/Components/Message/Message.razor.cs +++ b/src/BootstrapBlazor/Components/Message/Message.razor.cs @@ -133,6 +133,8 @@ public async Task Dismiss(string id) { await option.OnDismiss(); } + if (option is { DismissMode: MessageDismissMode.DeleteSource }) + _messages.Remove(option); } /// diff --git a/src/BootstrapBlazor/Components/Message/Message.razor.js b/src/BootstrapBlazor/Components/Message/Message.razor.js index 051ee869ce3..cf45b589fe3 100644 --- a/src/BootstrapBlazor/Components/Message/Message.razor.js +++ b/src/BootstrapBlazor/Components/Message/Message.razor.js @@ -46,10 +46,13 @@ export function show(id, msgId) { clearTimeout(hideHandler); // remove Id - msg.items.pop(); + const rmDom = msg.items.pop(); if (msg.items.length === 0) { // call server method prepare remove dom msg.invoke.invokeMethodAsync(msg.callback); + } else { + const alertId = rmDom.el.id; + msg.invoke.invokeMethodAsync('Dismiss', alertId); } }, 500); }; diff --git a/src/BootstrapBlazor/Components/Message/MessageOption.cs b/src/BootstrapBlazor/Components/Message/MessageOption.cs index 5376a7b1513..134267b3697 100644 --- a/src/BootstrapBlazor/Components/Message/MessageOption.cs +++ b/src/BootstrapBlazor/Components/Message/MessageOption.cs @@ -54,4 +54,9 @@ public class MessageOption : PopupOptionBase /// 获得/设置 消息显示模式,默认为 /// public MessageShowMode ShowMode { get; set; } = MessageShowMode.Multiple; + + /// + /// 获得/设置 消息关闭模式,默认为 + /// + public MessageDismissMode DismissMode { get; set; } = MessageDismissMode.OnlyHidden; } diff --git a/src/BootstrapBlazor/Enums/MessageShowMode.cs b/src/BootstrapBlazor/Enums/MessageShowMode.cs index 214c08c8440..a3d5bd7944f 100644 --- a/src/BootstrapBlazor/Enums/MessageShowMode.cs +++ b/src/BootstrapBlazor/Enums/MessageShowMode.cs @@ -20,3 +20,18 @@ public enum MessageShowMode /// Multiple } + +/// +/// 消息关闭模式 +/// +public enum MessageDismissMode +{ + /// + /// 关闭时仅隐藏原弹窗,保持占位直到所有弹窗均隐藏时一次性清空,这是之前的默认行为 + /// + OnlyHidden, + /// + /// 关闭时直接删除原弹窗的数据对象,不存在占位 + /// + DeleteSource, +} From 119a4ec4ff6d3dbe37428e9446836b83eae1d86a Mon Sep 17 00:00:00 2001 From: momiji-gz302 <2648863351@qq.com> Date: Thu, 31 Jul 2025 10:07:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(Message):=20Add=20=E2=80=9DDismissMode?= =?UTF-8?q?=E2=80=9C=20UnitTest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/MessageTest.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/UnitTest/Components/MessageTest.cs b/test/UnitTest/Components/MessageTest.cs index 4879e4cd552..ef3e1faf1c5 100644 --- a/test/UnitTest/Components/MessageTest.cs +++ b/test/UnitTest/Components/MessageTest.cs @@ -133,4 +133,19 @@ await cut.InvokeAsync(() => service.Show(new MessageOption() ShowMode = MessageShowMode.Single }, cut.Instance)); } + + [Fact] + public async Task DisMissMode_Ok() + { + var service = Context.Services.GetRequiredService(); + var cut = Context.RenderComponent(); + await cut.InvokeAsync(() => service.Show(new MessageOption() + { + Content = "Test Content", + IsAutoHide = false, + ShowDismiss = true, + Icon = "fa-solid fa-font-awesome", + DismissMode = MessageDismissMode.DeleteSource + }, cut.Instance)); + } } From 158f20398ba3a8b4072225d7aa29ba0520fadf10 Mon Sep 17 00:00:00 2001 From: momiji-gz302 <2648863351@qq.com> Date: Thu, 31 Jul 2025 10:15:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor(Message):=20=E2=80=9DDismissMode?= =?UTF-8?q?=E2=80=9C=20test=20triggering=20"Dismiss"=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/MessageTest.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/UnitTest/Components/MessageTest.cs b/test/UnitTest/Components/MessageTest.cs index ef3e1faf1c5..3aafccfc6da 100644 --- a/test/UnitTest/Components/MessageTest.cs +++ b/test/UnitTest/Components/MessageTest.cs @@ -147,5 +147,10 @@ await cut.InvokeAsync(() => service.Show(new MessageOption() Icon = "fa-solid fa-font-awesome", DismissMode = MessageDismissMode.DeleteSource }, cut.Instance)); + var alert = cut.Find(".alert"); + Assert.NotNull(alert); + Assert.NotNull(alert.Id); + + await cut.Instance.Dismiss(alert.Id); } }