Skip to content

Commit c174ff7

Browse files
ArgoZhang2881099
andauthored
perf(PopConfirmButton): remove dismiss event handler to improve performance (#5453)
* refactor: 精简代码 * refactor: 移除 dismiss 处理方法 * chore: bump version 9.3.1-beta39 Co-Authored-By: 2881099 <2881099@qq.com> --------- Co-authored-by: 2881099 <2881099@qq.com>
1 parent 4a2f5bb commit c174ff7

File tree

4 files changed

+5
-35
lines changed

4 files changed

+5
-35
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.3.1-beta38</Version>
4+
<Version>9.3.1-beta39</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Button/PopConfirmButton.razor.js

-20
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import EventHandler from "../../modules/event-handler.js"
55

66
const config = {
77
class: 'popover-confirm',
8-
dismiss: '.popover-confirm-buttons > div',
98
popoverSelector: '.popover-confirm.show'
109
}
1110

@@ -63,22 +62,6 @@ export function init(id) {
6362
EventHandler.on(el, 'inserted.bs.popover', confirm.inserted)
6463
EventHandler.on(el, 'hide.bs.popover', confirm.hide)
6564

66-
if (config.dismiss != null) {
67-
confirm.dismissHandler = e => {
68-
const ele = e.target.closest(config.popoverSelector)
69-
if (ele) {
70-
const element = getDescribedOwner(ele)
71-
if (element) {
72-
const popover = bootstrap.Popover.getInstance(element);
73-
if (popover) {
74-
popover.hide()
75-
}
76-
}
77-
}
78-
}
79-
EventHandler.on(document, 'click', config.dismiss, confirm.dismissHandler)
80-
}
81-
8265
confirm.checkCancel = el => {
8366
// check button
8467
let self = el === confirm.el || el.closest('.dropdown-toggle') === confirm.el
@@ -170,9 +153,6 @@ export function dispose(id) {
170153
if (confirm.popover) {
171154
confirm.popover.dispose();
172155
}
173-
if (config.dismiss) {
174-
EventHandler.off(document, 'click', config.dismiss, confirm.dismissHandler)
175-
}
176156
}
177157
}
178158

src/BootstrapBlazor/Components/Button/PopConfirmButtonContent.razor

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<div class="popover-confirm-body">
1111
@if (ChildContent != null)
1212
{
13-
<CascadingValue Value="TriggerCloseAsync" Name="PopoverConfirmButtonCloseAsync" IsFixed="true">
14-
<CascadingValue Value="TriggerConfirmAsync" Name="PopoverConfirmButtonConfirmAsync" IsFixed="true">
13+
<CascadingValue Value="OnCloseClick" Name="PopoverConfirmButtonCloseAsync" IsFixed="true">
14+
<CascadingValue Value="OnConfirmClick" Name="PopoverConfirmButtonConfirmAsync" IsFixed="true">
1515
@ChildContent
1616
</CascadingValue>
1717
</CascadingValue>

src/BootstrapBlazor/Components/Button/PopConfirmButtonContent.razor.cs

+2-12
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ protected override void OnParametersSet()
121121
/// </summary>
122122
public async Task OnCloseClick()
123123
{
124+
await InvokeVoidAsync("hide", Id);
124125
if (OnClose != null)
125126
{
126127
await OnClose();
@@ -132,21 +133,10 @@ public async Task OnCloseClick()
132133
/// </summary>
133134
public async Task OnConfirmClick()
134135
{
136+
await InvokeVoidAsync("hide", Id);
135137
if (OnConfirm != null)
136138
{
137139
await OnConfirm();
138140
}
139141
}
140-
141-
private async Task TriggerCloseAsync()
142-
{
143-
await InvokeVoidAsync("hide", Id);
144-
await OnCloseClick();
145-
}
146-
147-
private async Task TriggerConfirmAsync()
148-
{
149-
await InvokeVoidAsync("hide", Id);
150-
await OnConfirmClick();
151-
}
152142
}

0 commit comments

Comments
 (0)