Skip to content

Commit c0e59a4

Browse files
committed
feat(Message): Add ”DismissMode“ in MessageOption
1 parent 6fbacbc commit c0e59a4

File tree

4 files changed

+26
-1
lines changed

4 files changed

+26
-1
lines changed

src/BootstrapBlazor/Components/Message/Message.razor.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ public async Task Dismiss(string id)
133133
{
134134
await option.OnDismiss();
135135
}
136+
if (option is { DismissMode: MessageDismissMode.DeleteSource })
137+
_messages.Remove(option);
136138
}
137139

138140
/// <summary>

src/BootstrapBlazor/Components/Message/Message.razor.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,13 @@ export function show(id, msgId) {
4646
clearTimeout(hideHandler);
4747

4848
// remove Id
49-
msg.items.pop();
49+
const rmDom = msg.items.pop();
5050
if (msg.items.length === 0) {
5151
// call server method prepare remove dom
5252
msg.invoke.invokeMethodAsync(msg.callback);
53+
} else {
54+
const alertId = rmDom.el.id;
55+
msg.invoke.invokeMethodAsync('Dismiss', alertId);
5356
}
5457
}, 500);
5558
};

src/BootstrapBlazor/Components/Message/MessageOption.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,9 @@ public class MessageOption : PopupOptionBase
5454
/// 获得/设置 消息显示模式,默认为 <see cref="MessageShowMode.Multiple"/>
5555
/// </summary>
5656
public MessageShowMode ShowMode { get; set; } = MessageShowMode.Multiple;
57+
58+
/// <summary>
59+
/// 获得/设置 消息关闭模式,默认为 <see cref="MessageDismissMode.OnlyHidden"/>
60+
/// </summary>
61+
public MessageDismissMode DismissMode { get; set; } = MessageDismissMode.OnlyHidden;
5762
}

src/BootstrapBlazor/Enums/MessageShowMode.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,18 @@ public enum MessageShowMode
2020
/// </summary>
2121
Multiple
2222
}
23+
24+
/// <summary>
25+
/// 消息关闭模式
26+
/// </summary>
27+
public enum MessageDismissMode
28+
{
29+
/// <summary>
30+
/// 关闭时仅隐藏原弹窗,保持占位直到所有弹窗均隐藏时一次性清空,这是之前的默认行为
31+
/// </summary>
32+
OnlyHidden,
33+
/// <summary>
34+
/// 关闭时直接删除原弹窗的数据对象,不存在占位
35+
/// </summary>
36+
DeleteSource,
37+
}

0 commit comments

Comments
 (0)