UI/Home/HomeNavPill.razor
@using Sandbox.UI
@namespace sGBA
@inherits Panel
<root class="@PillClass">
<div class="nav-button-row">
@for (int i = 0; i < Items.Length; i++)
{
var index = i;
var item = Items[index];
<HomeNavButton [email protected] [email protected] [email protected] Selected=@(ShowSelection && SelectedIndex == index) Hovered=@(() => OnHover?.Invoke(index)) Clicked=@(() => OnActivate?.Invoke(index)) />
}
</div>
</root>
@code
{
[Parameter] public NavItem[] Items { get; set; }
[Parameter] public int SelectedIndex { get; set; }
[Parameter] public bool Focused { get; set; }
[Parameter] public bool ShowSelection { get; set; }
[Parameter] public Action<int> OnHover { get; set; }
[Parameter] public Action<int> OnActivate { get; set; }
private string PillClass => Focused ? "nav-pill focused" : "nav-pill";
protected override int BuildHash() => HashCode.Combine( SelectedIndex, Focused, ShowSelection, Items?.Length ?? 0 );
}