summaryrefslogtreecommitdiff
path: root/Pages/Component/TabContainer.razor
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
committerJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
commit8e94a12be4a56447e78d68c37def772bef8cade4 (patch)
tree0a12c64f8e34da45df8ac8e4c484c83385aedb45 /Pages/Component/TabContainer.razor
parent5b00f23b28e3a09a4120101a8be8802d009e5d84 (diff)
Convert Razor pages to Blazor
Diffstat (limited to 'Pages/Component/TabContainer.razor')
-rw-r--r--Pages/Component/TabContainer.razor28
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