Files
Moonlight/Moonlight/Features/Servers/UI/UserViews/Reset.razor
2024-02-06 19:30:30 +01:00

53 lines
1.2 KiB
Plaintext

@using Moonlight.Features.Servers.Entities
@using Moonlight.Features.Servers.Models.Abstractions
@using Moonlight.Features.Servers.Models.Enums
@using Moonlight.Features.Servers.Services
@implements IDisposable
@inject ServerService ServerService
<div class="card card-body">
@if (Meta.State == ServerState.Offline)
{
<ConfirmButton OnClick="ResetServer" CssClasses="btn btn-danger" Text="Reset server" />
}
else
{
<button class="btn btn-danger disabled" disabled="">Reset server</button>
}
</div>
@code
{
[CascadingParameter]
public Server Server { get; set; }
[CascadingParameter]
public ServerMeta Meta { get; set; }
protected override Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
Meta.OnStateChanged += OnStateChanged;
}
return Task.CompletedTask;
}
private async Task ResetServer()
{
await ServerService.Console.SendAction(Server, PowerAction.Install);
}
private async Task OnStateChanged()
{
await InvokeAsync(StateHasChanged);
}
public void Dispose()
{
Meta.OnStateChanged -= OnStateChanged;
}
}