@using MoonCore.Blazor.FlyonUi.Alerts @using MoonCore.Blazor.FlyonUi.Components @using MoonCore.Blazor.FlyonUi.Modals @using MoonCore.Blazor.FlyonUi.Toasts @using MoonCore.Helpers @using MoonCore.Models @using MoonlightServers.Frontend.UI.Components.Stars.Modals @using MoonlightServers.Shared.Http.Requests.Admin.StarVariables @using MoonlightServers.Shared.Http.Responses.Admin.Stars @using MoonlightServers.Shared.Http.Responses.Admin.StarVariables @inject HttpApiClient ApiClient @inject ModalService ModalService @inject AlertService AlertService @inject ToastService ToastService
@foreach (var variable in CurrentVariables) {
@variable.Name
}
@code { [Parameter] public StarResponse Star { get; set; } private StarVariableResponse[] CurrentVariables; private LazyLoader LazyLoader; private async Task LoadAsync(LazyLoader arg) { var pagedVariables = await ApiClient.GetJson>( $"api/admin/servers/stars/{Star.Id}/variables?startIndex=0&count=100" ); CurrentVariables = pagedVariables.Items; } private async Task AddVariableAsync() { Func onSubmit = async request => { await ApiClient.Post($"api/admin/servers/stars/{Star.Id}/variables", request); await ToastService.SuccessAsync("Successfully created variable"); await LazyLoader.ReloadAsync(); }; await ModalService.LaunchAsync(parameters => { parameters.Add("OnSubmit", onSubmit); }, "max-w-xl"); } private async Task UpdateVariableAsync(StarVariableResponse variable) { Func onSubmit = async request => { await ApiClient.Patch($"api/admin/servers/stars/{Star.Id}/variables/{variable.Id}", request); await ToastService.SuccessAsync("Successfully updated variable"); await LazyLoader.ReloadAsync(); }; await ModalService.LaunchAsync(parameters => { parameters.Add("OnSubmit", onSubmit); parameters.Add("Variable", variable); }, "max-w-xl"); } private async Task DeleteVariableAsync(StarVariableResponse variable) { await AlertService.ConfirmDangerAsync( "Delete variable", "Do you really want to delete the selected variable? This cannot be undone", async () => { await ApiClient.Delete($"api/admin/servers/stars/{Star.Id}/variables/{variable.Id}"); await ToastService.SuccessAsync("Successfully deleted variable"); await LazyLoader.ReloadAsync(); } ); } }