@using MoonCore.Blazor.FlyonUi.Components @using MoonlightServers.Shared.Http.Requests.Admin.Servers @using MoonCore.Helpers @using MoonCore.Models @using MoonlightServers.Frontend.UI.Views.Admin.All @using MoonlightServers.Shared.Http.Requests.Admin.ServerVariables @using MoonlightServers.Shared.Http.Responses.Admin.Stars @using MoonlightServers.Shared.Http.Responses.Admin.StarVariables @inject HttpApiClient ApiClient
@foreach (var variable in StarVariables) { // Load value of default var requestVar = Request.Variables.FirstOrDefault(x => x.Key == variable.Key); var value = requestVar != null ? requestVar.Value : variable.DefaultValue;

@variable.Description

}
@code { [Parameter] public CreateServerRequest Request { get; set; } [Parameter] public Create Parent { get; set; } private StarVariableDetailResponse[] StarVariables; private async Task Load(LazyLoader _) { if (Parent.Star == null) { StarVariables = []; return; } StarVariables = await PagedData.All(async (page, pageSize) => await ApiClient.GetJson>( $"api/admin/servers/stars/{Parent.Star.Id}/variables?page={page}&pageSize={pageSize}" ) ); } private async Task UpdateValue(StarVariableDetailResponse starVariable, ChangeEventArgs args) { var value = args.Value?.ToString() ?? ""; // Remove variable from request when set to its default value if (value == starVariable.DefaultValue && Request.Variables.Any(x => x.Key == starVariable.Key)) Request.Variables.RemoveAll(x => x.Key == starVariable.Key); else { var serverVar = Request.Variables .FirstOrDefault(x => x.Key == starVariable.Key); if (serverVar == null) { serverVar = new CreateServerVariableRequest() { Key = starVariable.Key }; Request.Variables.Add(serverVar); } serverVar.Value = value; } await InvokeAsync(StateHasChanged); } }