@using Moonlight.Frontend.Interfaces @using Moonlight.Frontend.Models @using ShadcnBlazor.Extras.Common @using ShadcnBlazor.Accordions @using ShadcnBlazor.Checkboxes @using ShadcnBlazor.Labels @inject IEnumerable Providers @foreach (var category in Categories) {
@category.Name
@foreach (var permission in category.Permissions) {
@if (Permissions.Contains(permission.Identifier)) { } else { }
}
}
@code { [Parameter] public List Permissions { get; set; } = new(); private static readonly Dictionary IconParameters = new() { ["ClassName"] = "absolute inset-0 size-4 text-muted-foreground" }; private readonly List Categories = new(); private async Task LoadAsync(LazyLoader _) { foreach (var provider in Providers) { Categories.AddRange( await provider.GetPermissionsAsync() ); } } private void HandleToggle(string permission, bool toggle) { if (toggle) { if (!Permissions.Contains(permission)) Permissions.Add(permission); } else Permissions.Remove(permission); } }