Skip to content

Commit

Permalink
AutoComplete property deleted. All cases will be supported trough cus…
Browse files Browse the repository at this point in the history
…tom attribute
  • Loading branch information
enchev committed Sep 12, 2024
1 parent ad17080 commit ee81b60
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 51 deletions.
14 changes: 7 additions & 7 deletions Radzen.Blazor.Tests/MaskTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ public void Mask_Renders_AutoCompleteParameter()

var component = ctx.RenderComponent<RadzenMask>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""off""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));

Assert.Contains(@$"autocomplete=""on""", component.Markup);
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);
Expand All @@ -135,7 +135,7 @@ public void Mask_Renders_AutoCompleteParameter()
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);

component.Instance.DefaultAutoCompleteAttribute = "autocomplete-custom";
component.SetParametersAndRender(parameters => parameters.Add(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""autocomplete-custom""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);
Expand All @@ -148,22 +148,22 @@ public void Mask_Renders_TypedAutoCompleteParameter()

var component = ctx.RenderComponent<RadzenMask>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.On));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.Off));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.AdditionalName));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.AdditionalName.GetAutoCompleteValue()}""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.Email));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.Email.GetAutoCompleteValue()}""", component.Markup);
Expand Down
14 changes: 7 additions & 7 deletions Radzen.Blazor.Tests/NumericTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -216,12 +216,12 @@ public void Numeric_Renders_AutoCompleteParameter()

var component = ctx.RenderComponent<RadzenNumeric<double>>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""off""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));

Assert.Contains(@$"autocomplete=""on""", component.Markup);
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);
Expand All @@ -232,7 +232,7 @@ public void Numeric_Renders_AutoCompleteParameter()
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);

component.Instance.DefaultAutoCompleteAttribute = "autocomplete-custom";
component.SetParametersAndRender(parameters => parameters.Add(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""autocomplete-custom""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);
Expand All @@ -245,22 +245,22 @@ public void Numeric_Renders_TypedAutoCompleteParameter()

var component = ctx.RenderComponent<RadzenNumeric<double>>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.On));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.Off));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.BdayMonth));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.BdayMonth.GetAutoCompleteValue()}""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.BdayYear));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.BdayYear.GetAutoCompleteValue()}""", component.Markup);
Expand Down
12 changes: 6 additions & 6 deletions Radzen.Blazor.Tests/PasswordTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,11 +119,11 @@ public void Password_Renders_AutoCompleteParameter()

var component = ctx.RenderComponent<RadzenPassword>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""new-password""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));

Assert.Contains(@$"autocomplete=""on""", component.Markup);

Expand All @@ -139,22 +139,22 @@ public void Password_Renders_TypedAutoCompleteParameter()

var component = ctx.RenderComponent<RadzenPassword>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.On));

Assert.Contains(@$"autocomplete=""new-password""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.Off));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.CurrentPassword));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.CurrentPassword.GetAutoCompleteValue()}""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.NewPassword));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.NewPassword.GetAutoCompleteValue()}""", component.Markup);
Expand Down
14 changes: 7 additions & 7 deletions Radzen.Blazor.Tests/TextBoxTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ public void TextBox_Renders_AutoCompleteParameter()

var component = ctx.RenderComponent<RadzenTextBox>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""off""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));

Assert.Contains(@$"autocomplete=""on""", component.Markup);
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);
Expand All @@ -135,7 +135,7 @@ public void TextBox_Renders_AutoCompleteParameter()
Assert.DoesNotContain(@$"aria-autocomplete", component.Markup);

component.Instance.DefaultAutoCompleteAttribute = "autocomplete-custom";
component.SetParametersAndRender(parameters => parameters.Add(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));

Assert.Contains(@$"autocomplete=""autocomplete-custom""", component.Markup);
Assert.Contains(@$"aria-autocomplete=""none""", component.Markup);
Expand All @@ -148,22 +148,22 @@ public void TextBox_Renders_TypedAutoCompleteParameter()

var component = ctx.RenderComponent<RadzenTextBox>();

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, false));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", false));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.On));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.Off));

Assert.Contains(@$"autocomplete=""off""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.AdditionalName));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.AdditionalName.GetAutoCompleteValue()}""", component.Markup);

component.SetParametersAndRender(parameters => parameters.Add<object>(p => p.AutoComplete, true));
component.SetParametersAndRender(parameters => parameters.AddUnmatched("AutoComplete", true));
component.SetParametersAndRender(parameters => parameters.Add<AutoCompleteType>(p => p.AutoCompleteType, AutoCompleteType.FamilyName));

Assert.Contains(@$"autocomplete=""{AutoCompleteType.FamilyName.GetAutoCompleteValue()}""", component.Markup);
Expand Down
18 changes: 2 additions & 16 deletions Radzen.Blazor/FormComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,6 @@ namespace Radzen
/// </summary>
public class FormComponentWithAutoComplete<T> : FormComponent<T>
{
/// <summary>
/// Gets or sets a value indicating the browser built-in autocomplete is enabled.
/// </summary>
/// <value><c>true</c> if input automatic complete is enabled; otherwise, <c>false</c>.</value>
[Parameter]
public virtual object AutoComplete { get; set; } = true;

/// <summary>
/// Gets or sets a value indicating the type of built-in autocomplete
/// the browser should use.
Expand All @@ -44,27 +37,20 @@ public class FormComponentWithAutoComplete<T> : FormComponent<T>
/// AutoCompleteType.</value>
public virtual string AutoCompleteAttribute
{
get => object.Equals(AutoComplete, false) ? DefaultAutoCompleteAttribute :
autoComplete as string ?? AutoCompleteType.GetAutoCompleteValue();
get => Attributes != null && Attributes.ContainsKey("AutoComplete") && $"{Attributes["AutoComplete"]}".ToLower() == "false" ? DefaultAutoCompleteAttribute :
Attributes != null && Attributes.ContainsKey("AutoComplete") ? Attributes["AutoComplete"] as string ?? AutoCompleteType.GetAutoCompleteValue() : AutoCompleteType.GetAutoCompleteValue();
}

/// <summary>
/// Gets or sets the default autocomplete attribute's string value.
/// </summary>
public virtual string DefaultAutoCompleteAttribute { get; set; } = "off";

object autoComplete;
object ariaAutoComplete;

/// <inheritdoc />
public override async Task SetParametersAsync(ParameterView parameters)
{
parameters = parameters.TryGetValue(nameof(AutoComplete).ToLower(), out autoComplete) ?
ParameterView.FromDictionary(parameters
.ToDictionary().Where(i => i.Key != nameof(AutoComplete).ToLower()).ToDictionary(i => i.Key, i => i.Value)
.ToDictionary(i => i.Key, i => i.Value))
: parameters;

parameters = parameters.TryGetValue("aria-autocomplete", out ariaAutoComplete) ?
ParameterView.FromDictionary(parameters
.ToDictionary().Where(i => i.Key != "aria-autocomplete").ToDictionary(i => i.Key, i => i.Value)
Expand Down
7 changes: 0 additions & 7 deletions Radzen.Blazor/RadzenNumeric.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -303,13 +303,6 @@ private bool IsInteger()
[Parameter]
public bool ReadOnly { get; set; }

/// <summary>
/// Gets or sets a value indicating whether input automatic complete is enabled.
/// </summary>
/// <value><c>true</c> if input automatic complete is enabled; otherwise, <c>false</c>.</value>
[Parameter]
public override object AutoComplete { get; set; } = false;

/// <summary>
/// Gets or sets a value indicating whether up down buttons are shown.
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion RadzenBlazorDemos/Pages/TextBoxConfig.razor
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
<RadzenColumn Size="12" SizeMD="4">
<RadzenCard>
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">TextBox with predefined AutoCompleteType</RadzenText>
<RadzenTextBox AutoCompleteType="AutoCompleteType.Off" Style="width: 100%" aria-label="Custom AutoComplete TextBox" />
<RadzenTextBox AutoCompleteType="AutoCompleteType.Sex" Style="width: 100%" aria-label="Custom AutoComplete TextBox" />
</RadzenCard>
</RadzenColumn>
</RadzenRow>
Expand Down

0 comments on commit ee81b60

Please sign in to comment.