Iceshrimp.NET/Iceshrimp.Frontend/Components/TabbedMenu.razor
2024-10-24 18:20:48 +02:00

25 lines
No EOL
773 B
Text

<CascadingValue Value="this">
<div class="buttons">
@foreach (var tab in Pages)
{
<button class="tab-button @(ActivePage == tab ? "active" : "")" @onclick="() => ActivePage = tab">@tab.Title</button>
}
</div>
@ChildContent
</CascadingValue>
@code {
[Parameter, EditorRequired] public required RenderFragment ChildContent { get; set; }
private List<TabPage> Pages { get; } = [];
internal TabPage? ActivePage { get; private set; }
internal void AddPage(TabPage tabPage)
{
Pages.Add(tabPage);
if (Pages.Count == 1)
{
ActivePage = tabPage;
}
StateHasChanged();
}
}