Implemented theme crud and basic theme loading

This commit is contained in:
2026-01-18 23:31:01 +01:00
parent 56b14f60f1
commit 3cbdd3b203
27 changed files with 1218 additions and 14 deletions

View File

@@ -13,22 +13,26 @@
@inject NavigationManager Navigation
@inject IAuthorizationService AuthorizationService
<Tabs DefaultValue="@(Tab ?? "customization")" OnValueChanged="OnTabChanged">
<Tabs DefaultValue="@(Tab ?? "settings")" OnValueChanged="OnTabChanged">
<TabsList ClassName="inline-flex w-full lg:w-fit justify-start overflow-x-auto overflow-y-hidden">
<TabsTrigger Value="customization">
<PaintRollerIcon />
Customization
<TabsTrigger Value="settings">
<CogIcon />
Settings
</TabsTrigger>
<TabsTrigger Value="themes" Disabled="@(!ThemesAccess.Succeeded)">
<PaintRollerIcon/>
Themes
</TabsTrigger>
<TabsTrigger Value="apiKeys" Disabled="@(!ApiKeyAccess.Succeeded)">
<KeyIcon />
<KeyIcon/>
API & API Keys
</TabsTrigger>
<TabsTrigger Value="diagnose">
<HeartPulseIcon />
<HeartPulseIcon/>
Diagnose
</TabsTrigger>
</TabsList>
<TabsContent Value="customization">
<TabsContent Value="settings">
<Card ClassName="mt-5">
<CardContent>
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
@@ -55,6 +59,12 @@
<ApiKeys />
</TabsContent>
}
@if (ThemesAccess.Succeeded)
{
<TabsContent Value="themes">
<Moonlight.Frontend.UI.Admin.Views.Sys.Themes.Index />
</TabsContent>
}
</Tabs>
@code
@@ -66,12 +76,14 @@
[CascadingParameter] public Task<AuthenticationState> AuthState { get; set; }
private AuthorizationResult ApiKeyAccess;
private AuthorizationResult ThemesAccess;
protected override async Task OnInitializedAsync()
{
var authState = await AuthState;
ApiKeyAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.ApiKeys.View);
ThemesAccess = await AuthorizationService.AuthorizeAsync(authState.User, Permissions.Themes.View);
}
private void OnTabChanged(string name)