diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-15 15:49:14 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-08-15 15:49:14 +1000 |
| commit | 8e94a12be4a56447e78d68c37def772bef8cade4 (patch) | |
| tree | 0a12c64f8e34da45df8ac8e4c484c83385aedb45 /Pages/Component/TabContainer.razor | |
| parent | 5b00f23b28e3a09a4120101a8be8802d009e5d84 (diff) | |
Convert Razor pages to Blazor
Diffstat (limited to 'Pages/Component/TabContainer.razor')
| -rw-r--r-- | Pages/Component/TabContainer.razor | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Pages/Component/TabContainer.razor b/Pages/Component/TabContainer.razor new file mode 100644 index 0000000..0dc1924 --- /dev/null +++ b/Pages/Component/TabContainer.razor @@ -0,0 +1,28 @@ +<link rel="stylesheet" href="@(nameof(HyperBooru)).styles.css"/> + +<div class="tabs"> + @foreach(var pane in Panes) { + <a href="javascript:;" @onclick=@(() => ActivePane = pane) class="@(pane == ActivePane ? "selected" : "")"> + @pane.Title + </a> + } +</div> + +<CascadingValue Value="this"> + @ChildContent +</CascadingValue> + +@code { + [Parameter] + public RenderFragment ChildContent { get; set; } + + public TabPane ActivePane { get; set; } + List<TabPane> Panes = new(); + + public void AddPane(TabPane tabPane) { + Panes.Add(tabPane); + if(Panes.Count == 1) + ActivePane = tabPane; + StateHasChanged(); + } +}
\ No newline at end of file |
