@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 Variables) {
@variable.Name
}
@code { [Parameter] public StarDetailResponse Star { get; set; } private StarVariableDetailResponse[] Variables; private LazyLoader LazyLoader; private async Task Load(LazyLoader arg) { var pagedVariables = await ApiClient.GetJson>( $"api/admin/servers/stars/{Star.Id}/variables?page=0&pageSize=50" ); Variables = pagedVariables.Items; } private async Task AddVariable() { Func onSubmit = async request => { await ApiClient.Post($"api/admin/servers/stars/{Star.Id}/variables", request); await ToastService.Success("Successfully created variable"); await LazyLoader.Reload(); }; await ModalService.Launch(parameters => { parameters.Add("OnSubmit", onSubmit); }, "max-w-xl"); } private async Task UpdateVariable(StarVariableDetailResponse variable) { Func onSubmit = async request => { await ApiClient.Patch($"api/admin/servers/stars/{Star.Id}/variables/{variable.Id}", request); await ToastService.Success("Successfully updated variable"); await LazyLoader.Reload(); }; await ModalService.Launch(parameters => { parameters.Add("OnSubmit", onSubmit); parameters.Add("Variable", variable); }, "max-w-xl"); } private async Task DeleteVariable(StarVariableDetailResponse variable) { await AlertService.ConfirmDanger( "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.Success("Successfully deleted variable"); await LazyLoader.Reload(); } ); } }