@using MoonCore.Blazor.FlyonUi.Alerts @using MoonCore.Blazor.FlyonUi.Components @using MoonCore.Blazor.FlyonUi.Modals @using MoonCore.Blazor.FlyonUi.Toasts @using MoonCore.Blazor.Tailwind.Alerts @using MoonCore.Blazor.Tailwind.Components @using MoonCore.Blazor.Tailwind.Modals @using MoonCore.Blazor.Tailwind.Toasts @using MoonCore.Helpers @using MoonCore.Models @using MoonlightServers.Frontend.UI.Components.Stars.Modals @using MoonlightServers.Shared.Http.Requests.Admin.StarDockerImages @using MoonlightServers.Shared.Http.Responses.Admin.StarDockerImages @using MoonlightServers.Shared.Http.Responses.Admin.Stars @inject HttpApiClient ApiClient @inject ModalService ModalService @inject ToastService ToastService @inject AlertService AlertService
@foreach (var dockerImage in DockerImages) {
@dockerImage.DisplayName
}
@code { [Parameter] public StarDetailResponse Star { get; set; } private StarDockerImageDetailResponse[] DockerImages; private LazyLoader LazyLoader; private async Task Load(LazyLoader _) { var pagedVariables = await ApiClient.GetJson>( $"api/admin/servers/stars/{Star.Id}/dockerImages?page=0&pageSize=50" ); DockerImages = pagedVariables.Items; } private async Task AddDockerImage() { Func onSubmit = async request => { await ApiClient.Post($"api/admin/servers/stars/{Star.Id}/dockerImages", request); await ToastService.Success("Successfully created docker image"); await LazyLoader.Reload(); }; await ModalService.Launch(parameters => { parameters.Add("OnSubmit", onSubmit); }); } private async Task UpdateDockerImage(StarDockerImageDetailResponse dockerImage) { Func onSubmit = async request => { await ApiClient.Patch($"api/admin/servers/stars/{Star.Id}/dockerImages/{dockerImage.Id}", request); await ToastService.Success("Successfully updated docker image"); await LazyLoader.Reload(); }; await ModalService.Launch(parameters => { parameters.Add("OnSubmit", onSubmit); parameters.Add("DockerImage", dockerImage); }); } private async Task DeleteDockerImage(StarDockerImageDetailResponse dockerImage) { await AlertService.ConfirmDanger( "Delete docker image", "Do you really want to delete the selected docker image? This cannot be undone", async () => { await ApiClient.Delete($"api/admin/servers/stars/{Star.Id}/dockerImages/{dockerImage.Id}"); await ToastService.Success("Successfully deleted docker image"); await LazyLoader.Reload(); } ); } }