From a1ac3d52a948e0309bea3afff9c02ab5eb630d36 Mon Sep 17 00:00:00 2001 From: capdiem Date: Fri, 12 Jul 2024 17:31:57 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=95=20feat(InputsFilter):=20expose=20t?= =?UTF-8?q?he=20method=20for=20notifying=20field=20updates=20(#2034)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Masa.Blazor/Components/Input/MInput.razor.cs | 7 +------ .../InputsFilterFieldChangedEventArgs.cs | 12 +++--------- .../Components/InputsFilter/MInputsFilter.cs | 4 ++-- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/src/Masa.Blazor/Components/Input/MInput.razor.cs b/src/Masa.Blazor/Components/Input/MInput.razor.cs index b525f30da5..a7920d0a15 100644 --- a/src/Masa.Blazor/Components/Input/MInput.razor.cs +++ b/src/Masa.Blazor/Components/Input/MInput.razor.cs @@ -312,12 +312,7 @@ protected async Task TryInvokeFieldChangeOfInputsFilter(bool isClear = false) return; } - if (!ValueIdentifier.HasValue) - { - throw new InvalidOperationException("If you split the @bind-Value into Value and ValueChanged, the ValueExpression is required."); - } - - await InputsFilter.FieldChange(ValueIdentifier.Value.FieldName, isClear); + await InputsFilter.NotifyFieldChange(ValueIdentifier?.FieldName, isClear); } public void ResetFilter() diff --git a/src/Masa.Blazor/Components/InputsFilter/InputsFilterFieldChangedEventArgs.cs b/src/Masa.Blazor/Components/InputsFilter/InputsFilterFieldChangedEventArgs.cs index 20007189a1..fcda5e7a42 100644 --- a/src/Masa.Blazor/Components/InputsFilter/InputsFilterFieldChangedEventArgs.cs +++ b/src/Masa.Blazor/Components/InputsFilter/InputsFilterFieldChangedEventArgs.cs @@ -1,14 +1,8 @@ namespace Masa.Blazor; -public class InputsFilterFieldChangedEventArgs : EventArgs +public class InputsFilterFieldChangedEventArgs(string? fieldName, bool isClear) : EventArgs { - public InputsFilterFieldChangedEventArgs(string fieldName, bool isClear) - { - FieldName = fieldName; - IsClear = isClear; - } + public string? FieldName { get; } = fieldName; - public string FieldName { get; } - - public bool IsClear { get; } + public bool IsClear { get; } = isClear; } diff --git a/src/Masa.Blazor/Components/InputsFilter/MInputsFilter.cs b/src/Masa.Blazor/Components/InputsFilter/MInputsFilter.cs index 03935d50a0..a5495eba8c 100644 --- a/src/Masa.Blazor/Components/InputsFilter/MInputsFilter.cs +++ b/src/Masa.Blazor/Components/InputsFilter/MInputsFilter.cs @@ -20,8 +20,8 @@ protected override void BuildRenderTree(RenderTreeBuilder builder) builder.AddAttribute(3, nameof(ChildContent), ChildContent); builder.CloseComponent(); } - - internal Task FieldChange(string fieldName, bool isClear = false) + + public Task NotifyFieldChange(string? fieldName, bool isClear = false) => OnFieldChanged.InvokeAsync(new InputsFilterFieldChangedEventArgs(fieldName, isClear)); internal void RegisterInput(IFilterInput input)