Files

56 lines
2.5 KiB
Plaintext

@using MudBlazor
@namespace OpenArchival.Blazor.ArchiveSearch
<Microsoft.AspNetCore.Components.Forms.EditForm Model="this" OnSubmit="OnSubmit">
<MudTextField FullWidth="true"
AutoFocus="string.IsNullOrEmpty(SearchTerms)"
Placeholder="Search"
T="string"
Variant="Variant.Outlined"
Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.Search"
Class="mt-5"
@bind-Value="SearchTerms"
/>
<MudExpansionPanel Text="Filter...">
<MudText Typo="Typo.caption">Choose which data the serach bar will search on:</MudText>
<MudDivider></MudDivider>
<MudRadioGroup T="ArchiveSearchFilterType" @bind-SelectedOption="SelectedFilter">
<MudRadio Option="ArchiveSearchFilterType.All" T="ArchiveSearchFilterType">All</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.Tags" T="ArchiveSearchFilterType">Tags</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.Defects" T="ArchiveSearchFilterType">Defects</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.ListedNames" T="ArchiveSearchFilterType">Listed Names</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.Title" T="ArchiveSearchFilterType">Title</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.Description" T="ArchiveSearchFilterType">Description</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.Filenames" T="ArchiveSearchFilterType">Filenames</MudRadio>
<MudRadio Option="ArchiveSearchFilterType.ArtifactTranscriptions" T="ArchiveSearchFilterType">Artifact Transcriptions</MudRadio>
</MudRadioGroup>
</MudExpansionPanel>
</Microsoft.AspNetCore.Components.Forms.EditForm>
@code {
[Parameter]
public string SearchTerms { get; set; } = "";
[Parameter]
public EventCallback<string> SearchTermsChanged { get; set; }
[Parameter]
public ArchiveSearchFilterType SelectedFilter { get; set; } = ArchiveSearchFilterType.All;
[Parameter]
public EventCallback<ArchiveSearchFilterType> SelectedFilterChanged { get; set; }
private async Task HandleSearchKeyDown(Microsoft.AspNetCore.Components.Web.KeyboardEventArgs args)
{
if (args.Key == "Enter")
{
await SearchTermsChanged.InvokeAsync(SearchTerms);
}
}
private async Task OnSubmit(Microsoft.AspNetCore.Components.Forms.EditContext args)
{
await SearchTermsChanged.InvokeAsync(SearchTerms);
}
}