using Microsoft.JSInterop; using MudBlazor; namespace PlaylistShared.Pwa.Services; public class PwaUpdateService { private readonly ISnackbar _snackbar; private readonly IJSRuntime _jsRuntime; public PwaUpdateService(ISnackbar snackbar, IJSRuntime jsRuntime) { _snackbar = snackbar; _jsRuntime = jsRuntime; } [JSInvokable] public void OnNewVersionAvailable() { _snackbar.Add("Доступна новая версия! Обновите страницу.", Severity.Info, configure: options => { options.Action = "Обновить"; options.ShowCloseIcon = false; options.RequireInteraction = true; options.OnClick = _ => { _jsRuntime.InvokeVoidAsync("location.reload", true); return Task.CompletedTask; }; options.CloseAfterNavigation = true; }); } }