LANCommander/LANCommander.Client/UI/Components/UpdateChecker.razor

27 lines
800 B
Text

@using LANCommander.SDK.Models
@using Semver
@inject UpdateService UpdateService
@inject ModalService ModalService
@code {
protected override async Task OnInitializedAsync()
{
UpdateService.OnUpdateAvailable += OnUpdateAvailable;
}
async Task OnUpdateAvailable(CheckForUpdateResponse response)
{
var confirmUpdate = await ModalService.ConfirmAsync(new ConfirmOptions
{
OkText = "Update Now",
CancelText = "Later",
Title = "Launcher Update",
Content = $"An update for v{response.Version} is available"
});
if (confirmUpdate && SemVersion.TryParse(response.Version, SemVersionStyles.Any, out var version))
{
await UpdateService.UpdateAsync(version);
}
}
}