diff options
Diffstat (limited to 'BugMine.Web/Components/UpdateAvailableDetector.razor')
-rw-r--r-- | BugMine.Web/Components/UpdateAvailableDetector.razor | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/BugMine.Web/Components/UpdateAvailableDetector.razor b/BugMine.Web/Components/UpdateAvailableDetector.razor new file mode 100644 index 0000000..5197a6f --- /dev/null +++ b/BugMine.Web/Components/UpdateAvailableDetector.razor @@ -0,0 +1,38 @@ +@* Source: https://whuysentruit.medium.com/blazor-wasm-pwa-adding-a-new-update-available-notification-d9f65c4ad13 *@ +@inject IJSRuntime _jsRuntime + +@if (_newVersionAvailable) +{ + <button type="button" class="btn btn-warning shadow floating-update-button" onclick="window.location.reload()"> + A new version of the application is available. Click here to reload. + </button> +} + +@code { + + private bool _newVersionAvailable = false; + + protected override async Task OnInitializedAsync() + { + await RegisterForUpdateAvailableNotification(); + } + + private async Task RegisterForUpdateAvailableNotification() + { + await _jsRuntime.InvokeAsync<object>( + identifier: "registerForUpdateAvailableNotification", + DotNetObjectReference.Create(this), + nameof(OnUpdateAvailable)); + } + + [JSInvokable(nameof(OnUpdateAvailable))] + public Task OnUpdateAvailable() + { + _newVersionAvailable = true; + + StateHasChanged(); + + return Task.CompletedTask; + } + +} \ No newline at end of file |