@typeparam T @code { [Parameter, EditorRequired] public string Label { get; set; } = string.Empty; [Parameter, EditorRequired] public IEnumerable Options { get; set; } = default!; [Parameter, EditorRequired] public Func GetName { get; set; } = default!; [Parameter, EditorRequired] public Action OnSelect { get; set; } = default!; [Parameter, EditorRequired] public T? SelectedOption { get; set; } private string htmlLabel => Label.Replace("-", ""); private void onSelect(T option) { SelectedOption = option; OnSelect(SelectedOption); } private string getButtonClass(T option) { var partClass = GetName(option) == GetName(SelectedOption) ? "primary" : "outline-primary"; return $"mx-1 btn btn-{partClass}"; } }
@foreach(var option in Options) { }