hubl/src/components/sw-toolbox.js

47 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-04-08 15:48:21 +00:00
import {
Workbox,
messageSW
} from 'https://storage.googleapis.com/workbox-cdn/releases/6.1.1/workbox-window.prod.mjs';
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
const wb = new Workbox('/service-worker.js');
let registration;
const showSkipWaitingPrompt = (event) => {
2021-06-15 11:48:49 +00:00
if (orbit.intl.t('serviceWorker.newUpdate') != undefined) {
2021-04-08 19:25:14 +00:00
Swal.fire({
position: 'bottom-end',
backdrop: false,
title: "",
2021-06-15 11:48:49 +00:00
text: orbit.intl.t('serviceWorker.newUpdate') + ". " + orbit.intl.t('serviceWorker.wantToUpdate'),
2021-06-15 12:04:30 +00:00
imageUrl: orbit.client.logo || 'https://cdn.startinblox.com/logos/webp/startinblox.webp',
2021-06-15 11:48:49 +00:00
imageAlt: orbit.client.name,
2021-04-08 19:25:14 +00:00
showCancelButton: true,
2021-05-20 14:24:49 +00:00
confirmButtonClass: 'button text-xsmall text-bold text-center reversed color-secondary bordered icon icon-check icon-margin-right-xsmall no-background-image',
cancelButtonClass: 'button text-xsmall text-bold text-center reversed color-primary bordered icon icon-exclamation icon-margin-right-xsmall no-background-image',
2021-06-15 11:48:49 +00:00
confirmButtonText: orbit.intl.t('serviceWorker.yes'),
cancelButtonText: orbit.intl.t('serviceWorker.no')
2021-04-08 19:25:14 +00:00
}).then((result) => {
if (result.isConfirmed) {
wb.addEventListener('controlling', (event) => {
window.location.reload();
2021-04-08 15:48:21 +00:00
});
2021-04-08 19:25:14 +00:00
if (registration && registration.waiting) {
messageSW(registration.waiting, {
type: 'SKIP_WAITING'
});
}
2021-04-08 15:48:21 +00:00
}
2021-04-08 19:25:14 +00:00
});
}
2021-04-08 15:48:21 +00:00
};
wb.addEventListener('waiting', showSkipWaitingPrompt);
wb.addEventListener('externalwaiting', showSkipWaitingPrompt);
wb.register().then((r) => registration = r);
});
}