Skip to content

Commit dcdf40d

Browse files
authored
feat(BootstrapInputNumber): add OnBlurAsync parameter (#4519)
* feat(InputNumber): add OnBlurAsync parameter * test: 更新单元测试
1 parent 41e26e2 commit dcdf40d

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/BootstrapBlazor/Components/InputNumber/BootstrapInputNumber.razor.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ public partial class BootstrapInputNumber<TValue>
8383
[Parameter]
8484
public string? PlusIcon { get; set; }
8585

86+
/// <summary>
87+
/// 获得/设置 失去焦点回调方法 默认 null
88+
/// </summary>
89+
[Parameter]
90+
public Func<TValue, Task>? OnBlurAsync { get; set; }
91+
8692
[Inject]
8793
[NotNull]
8894
private IStringLocalizer<BootstrapInputNumber<TValue>>? Localizer { get; set; }
@@ -281,6 +287,11 @@ private async Task OnBlur()
281287
// set component value empty
282288
await InvokeVoidAsync("clear", Id);
283289
}
290+
291+
if (OnBlurAsync != null)
292+
{
293+
await OnBlurAsync(Value);
294+
}
284295
}
285296

286297
private TValue SetMin(TValue val)

test/UnitTest/Components/InputNumberTest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,23 @@ await cut.InvokeAsync(() =>
138138
Assert.Null(cut.Instance.Value);
139139
}
140140

141+
[Fact]
142+
public async Task OnBlurAsync_Ok()
143+
{
144+
var blur = false;
145+
var cut = Context.RenderComponent<BootstrapInputNumber<int>>(builder =>
146+
{
147+
builder.Add(a => a.OnBlurAsync, v =>
148+
{
149+
blur = true;
150+
return Task.CompletedTask;
151+
});
152+
});
153+
var input = cut.Find("input");
154+
await cut.InvokeAsync(() => { input.Blur(); });
155+
Assert.True(blur);
156+
}
157+
141158
[Fact]
142159
public async Task ShowButton_Ok()
143160
{

0 commit comments

Comments
 (0)