Checkbox - working example -- NumberInput,TextInput - InputAttributes initialization moved to InputBase class
This commit is contained in:
parent
cac80598f0
commit
e83e46abc0
13
src/Connected.Components/Components/CheckBox.razor
Normal file
13
src/Connected.Components/Components/CheckBox.razor
Normal file
@ -0,0 +1,13 @@
|
||||
@using Connected.Models;
|
||||
|
||||
@inherits InputBase;
|
||||
|
||||
<div class="checkbox-group">
|
||||
@if (Checked)
|
||||
{
|
||||
<input id="@Id" name="checkbox" type="checkbox" @onchange="OnChange" @attributes=@InputAttributes checked>
|
||||
} else {
|
||||
<input id="@Id" name="checkbox" type="checkbox" @onchange="OnChange" @attributes=@InputAttributes>
|
||||
}
|
||||
<label for="@Id" class="checkbox-label">@Label</label>
|
||||
</div>
|
21
src/Connected.Components/Components/CheckBox.razor.cs
Normal file
21
src/Connected.Components/Components/CheckBox.razor.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using Connected.Models;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Connected.Components;
|
||||
public partial class CheckBox: InputBase
|
||||
{
|
||||
[Parameter]
|
||||
public bool Checked { get; set; } = false;
|
||||
|
||||
[Parameter, EditorRequired]
|
||||
public string Id { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<bool> CheckedChange { get; set; }
|
||||
public async Task OnChange(ChangeEventArgs args)
|
||||
{
|
||||
Checked = (bool)args.Value;
|
||||
CheckedChange.InvokeAsync(Checked);
|
||||
}
|
||||
|
||||
}
|
9
src/Connected.Components/Components/CheckBoxGroup.razor
Normal file
9
src/Connected.Components/Components/CheckBoxGroup.razor
Normal file
@ -0,0 +1,9 @@
|
||||
@using Connected.Models;
|
||||
|
||||
@inherits InputBase;
|
||||
|
||||
<div>
|
||||
<div class="container">
|
||||
@ChildContent
|
||||
</div>
|
||||
</div>
|
11
src/Connected.Components/Components/CheckBoxGroup.razor.cs
Normal file
11
src/Connected.Components/Components/CheckBoxGroup.razor.cs
Normal file
@ -0,0 +1,11 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace Connected.Components;
|
||||
public partial class CheckBoxGroup
|
||||
{
|
||||
[Parameter, EditorRequired]
|
||||
public string Id { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public RenderFragment ChildContent { get; set; }
|
||||
}
|
@ -228,5 +228,14 @@ public partial class NumberInput<NumberType>:InputBase where NumberType : INumbe
|
||||
await base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
#endregion
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await base.OnInitializedAsync();
|
||||
if (Required)
|
||||
{
|
||||
if (!InputAttributes.ContainsKey("required")) InputAttributes.Add("required", true);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
@ -56,14 +56,13 @@ public partial class TextInput: InputBase
|
||||
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
if (base.InputAttributes is null) base.InputAttributes = new();
|
||||
if (base.Required)
|
||||
{
|
||||
if (base.InputAttributes.ContainsKey("required")) base.InputAttributes.Add("required", true);
|
||||
}
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
if (Required)
|
||||
{
|
||||
if (!InputAttributes.ContainsKey("required")) InputAttributes.Add("required", true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
using Connected.Utilities;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using static Connected.Colors;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace Connected.Models;
|
||||
public class InputBase : ComponentBase
|
||||
@ -124,4 +122,9 @@ public class InputBase : ComponentBase
|
||||
|
||||
[Parameter]
|
||||
public string Placeholder { get; set; } = string.Empty;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
if (InputAttributes is null) InputAttributes = new();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user