Skip to content

Commit 7895510

Browse files
authored
Select SearchBox Clearable and Ctrl A Fix (#158)
1 parent 0724cd7 commit 7895510

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<MudCheckBox CheckedIcon="@SelectAllCheckBoxIcon" Color="@Color" @bind-Checked="_allSelected" @onclick="() => SelectAllItems(_allSelected)" Dense="true" />
3434
}
3535
<MudTextField @ref="_searchField" @bind-Value="@_searchString" Class="@ClassSearchBox" Placeholder="@SearchBoxPlaceholder" OnKeyDown="SearchBoxHandleKeyDown" OnKeyUp="@(() => UpdateSelectedStyles())" Immediate="true" Variant="Variant.Outlined" Margin="Margin.Dense"
36-
Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Search" AdornmentColor="Color" AutoFocus="@SearchBoxAutoFocus" />
36+
Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Search" AdornmentColor="Color" AutoFocus="@SearchBoxAutoFocus" Clearable="@SearchBoxClearable" />
3737
</div>
3838
</MudListSubheaderExtended>
3939
@if (MultiSelection && SelectAll && SelectAllPosition == SelectAllPosition.AfterSearchBox && ParentList == null)

CodeBeam.MudBlazor.Extensions/Components/ListExtended/MudListExtended.razor.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,13 @@ public Func<T, string> ToStringFunc
164164
[Category(CategoryTypes.List.Behavior)]
165165
public bool SearchBoxAutoFocus { get; set; }
166166

167+
/// <summary>
168+
/// If true, the search-box has a clear icon.
169+
/// </summary>
170+
[Parameter]
171+
[Category(CategoryTypes.List.Behavior)]
172+
public bool SearchBoxClearable { get; set; }
173+
167174
/// <summary>
168175
/// SearchBox's CSS classes, seperated by space.
169176
/// </summary>
@@ -793,6 +800,13 @@ protected internal async Task SearchBoxHandleKeyDown(KeyboardEventArgs obj)
793800
await _searchField.FocusAsync();
794801
StateHasChanged();
795802
break;
803+
case "a":
804+
case "A":
805+
if (obj.CtrlKey == true)
806+
{
807+
await _searchField.SelectAsync();
808+
}
809+
break;
796810
}
797811
}
798812

CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
Clickable="true" Color="@Color" Dense="@Dense" ItemCollection="@ItemCollection" Virtualize="@Virtualize" DisablePadding="@DisablePopoverPadding" DisableSelectedItemStyle="@DisableSelectedItemStyle"
112112
MultiSelection="@MultiSelection" MultiSelectionComponent="@MultiSelectionComponent" MultiSelectionAlign="@MultiSelectionAlign" SelectAll="@SelectAll" SelectAllPosition="@SelectAllPosition" SelectAllText="@SelectAllText"
113113
CheckedIcon="@CheckedIcon" UncheckedIcon="@UncheckedIcon" IndeterminateIcon="@IndeterminateIcon" SelectValueOnTab="@SelectValueOnTab" Comparer="@Comparer"
114-
ItemTemplate="@ItemTemplate" ItemSelectedTemplate="@ItemSelectedTemplate" ItemDisabledTemplate="@ItemDisabledTemplate" SearchBox="@SearchBox" SearchBoxAutoFocus="@SearchBoxAutoFocus" SearchFunc="@SearchFunc" SearchBoxPlaceholder="@SearchBoxPlaceholder" ToStringFunc="@ToStringFunc">
114+
ItemTemplate="@ItemTemplate" ItemSelectedTemplate="@ItemSelectedTemplate" ItemDisabledTemplate="@ItemDisabledTemplate" SearchBox="@SearchBox" SearchBoxAutoFocus="@SearchBoxAutoFocus" SearchFunc="@SearchFunc" SearchBoxPlaceholder="@SearchBoxPlaceholder" SearchBoxClearable="@SearchBoxClearable" ToStringFunc="@ToStringFunc">
115115
@ChildContent
116116
</MudListExtended>
117117
</CascadingValue>

CodeBeam.MudBlazor.Extensions/Components/SelectExtended/MudSelectExtended.razor.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,12 @@ public bool Dense
347347
[Category(CategoryTypes.List.Behavior)]
348348
public bool SearchBoxAutoFocus { get; set; }
349349

350+
/// <summary>
351+
/// If true, the search-box has a clear icon.
352+
/// </summary>
353+
[Parameter]
354+
[Category(CategoryTypes.List.Behavior)]
355+
public bool SearchBoxClearable { get; set; }
350356

351357
/// <summary>
352358
/// If true, prevent scrolling while dropdown is open.

ComponentViewer.Docs/Pages/Examples/SelectExtendedExample6.razor

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11

22
<MudGrid>
33
<MudItem xs="12" sm="8" Class="d-flex gap-4">
4-
<MudSelectExtended MultiSelection="@_multiselection" ItemCollection="_states" SearchBox="true" SearchBoxAutoFocus="@_searchBoxAutoFocus" T="string" Label="Standard Search" AnchorOrigin="Origin.BottomCenter" Variant="Variant.Outlined" HelperText="Search with 'Contains' logic" />
5-
<MudSelectExtended MultiSelection="@_multiselection" ItemCollection="_states" SearchBox="true" SearchBoxAutoFocus="@_searchBoxAutoFocus" SearchFunc="@(new Func<string, string, bool>(SearchItems))" T="string" Label="Custom Search Func" AnchorOrigin="Origin.BottomCenter" Variant="Variant.Outlined" SearchBoxPlaceholder="Some Placeholder" HelperText="Search with 'StartsWith' logic" />
4+
<MudSelectExtended MultiSelection="@_multiselection" ItemCollection="_states" SearchBox="true" SearchBoxAutoFocus="@_searchBoxAutoFocus" T="string" Label="Standard Search" AnchorOrigin="Origin.BottomCenter" Variant="Variant.Outlined" HelperText="Search with 'Contains' logic" SearchBoxClearable="_searchBoxClearable" />
5+
<MudSelectExtended MultiSelection="@_multiselection" ItemCollection="_states" SearchBox="true" SearchBoxAutoFocus="@_searchBoxAutoFocus" SearchFunc="@(new Func<string, string, bool>(SearchItems))" T="string" Label="Custom Search Func" AnchorOrigin="Origin.BottomCenter" Variant="Variant.Outlined" SearchBoxPlaceholder="Some Placeholder" HelperText="Search with 'StartsWith' logic" SearchBoxClearable="_searchBoxClearable" />
66
</MudItem>
77

88
<MudItem xs="12" sm="4">
99
<MudStack>
1010
<MudSwitchM3 @bind-Checked="_multiselection" Color="Color.Primary" Label="MultiSelection" />
1111
<MudSwitchM3 @bind-Checked="_searchBoxAutoFocus" Color="Color.Primary" Label="AutoFocus (SearchBox)" />
12+
<MudSwitchM3 @bind-Checked="_searchBoxClearable" Color="Color.Primary" Label="Clearable (SearchBox)" />
1213
</MudStack>
1314
</MudItem>
1415
</MudGrid>
1516

1617
@code {
1718
bool _multiselection;
1819
bool _searchBoxAutoFocus;
20+
bool _searchBoxClearable;
1921

2022
private string[] _states =
2123
{

0 commit comments

Comments
 (0)