Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/BootstrapBlazor/Components/Message/Message.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ public async Task Dismiss(string id)
{
await option.OnDismiss();
}
if (option is { DismissMode: MessageDismissMode.DeleteSource })
_messages.Remove(option);
}

/// <summary>
Expand Down
5 changes: 4 additions & 1 deletion src/BootstrapBlazor/Components/Message/Message.razor.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};
Expand Down
5 changes: 5 additions & 0 deletions src/BootstrapBlazor/Components/Message/MessageOption.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,9 @@ public class MessageOption : PopupOptionBase
/// 获得/设置 消息显示模式,默认为 <see cref="MessageShowMode.Multiple"/>
/// </summary>
public MessageShowMode ShowMode { get; set; } = MessageShowMode.Multiple;

/// <summary>
/// 获得/设置 消息关闭模式,默认为 <see cref="MessageDismissMode.OnlyHidden"/>
/// </summary>
public MessageDismissMode DismissMode { get; set; } = MessageDismissMode.OnlyHidden;
}
15 changes: 15 additions & 0 deletions src/BootstrapBlazor/Enums/MessageShowMode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,18 @@ public enum MessageShowMode
/// </summary>
Multiple
}

/// <summary>
/// 消息关闭模式
/// </summary>
public enum MessageDismissMode
{
/// <summary>
/// 关闭时仅隐藏原弹窗,保持占位直到所有弹窗均隐藏时一次性清空,这是之前的默认行为
/// </summary>
OnlyHidden,
/// <summary>
/// 关闭时直接删除原弹窗的数据对象,不存在占位
/// </summary>
DeleteSource,
}
Loading