Skip to content

Commit acb9295

Browse files
committed
refactor: 重构 Dismiss 逻辑提高性能
1 parent 52e7f31 commit acb9295

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,14 @@ public void Clear(string id)
157157
/// </summary>
158158
/// <param name="id"></param>
159159
[JSInvokable]
160-
public async Task Dismiss(string id)
160+
public async ValueTask Dismiss(string id)
161161
{
162162
var option = _messages.Find(i => GetItemId(i) == id);
163163
if (option is { OnDismiss: not null })
164164
{
165165
await option.OnDismiss();
166+
_messages.Remove(option);
167+
StateHasChanged();
166168
}
167169
}
168170

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,16 +58,17 @@ export function show(id, msgId) {
5858
}, 500);
5959
};
6060

61-
EventHandler.on(el, 'click', '.btn-close', e => {
61+
EventHandler.on(el, 'click', '.btn-close', async e => {
6262
e.preventDefault();
6363
e.stopPropagation();
6464

6565
const alert = e.delegateTarget.closest('.alert');
6666
if (alert) {
67+
alert.classList.add("d-none");
6768
const alertId = alert.getAttribute('id');
68-
msg.invoke.invokeMethodAsync('Dismiss', alertId);
69+
msg.items = msg.items.filter(i => i.el.id !== alertId);
70+
await msg.invoke.invokeMethodAsync('Dismiss', alertId);
6971
}
70-
close();
7172
});
7273
}
7374

0 commit comments

Comments
 (0)