45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
|
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) => {
|
||
|
Swal.fire({
|
||
|
position: 'bottom-end',
|
||
|
backdrop: false,
|
||
|
title: "",
|
||
|
text: hubl.intl.t('serviceWorker.newUpdate') + ". " + hubl.intl.t('serviceWorker.wantToUpdate'),
|
||
|
imageUrl: hubl.client.logo || 'https://cdn.startinblox.com/logos/webp/hubl.webp',
|
||
|
imageAlt: hubl.client.name,
|
||
|
showCancelButton: true,
|
||
|
confirmButtonClass: 'button text-xsmall text-bold text-center reversed color-secondary bordered icon icon-check no-background-image',
|
||
|
cancelButtonClass: 'button text-xsmall text-bold text-center reversed color-primary bordered icon icon-exclamation no-background-image',
|
||
|
confirmButtonText: hubl.intl.t('serviceWorker.yes'),
|
||
|
cancelButtonText: hubl.intl.t('serviceWorker.no')
|
||
|
}).then((result) => {
|
||
|
if (result.isConfirmed) {
|
||
|
wb.addEventListener('controlling', (event) => {
|
||
|
window.location.reload();
|
||
|
});
|
||
|
|
||
|
if (registration && registration.waiting) {
|
||
|
messageSW(registration.waiting, {
|
||
|
type: 'SKIP_WAITING'
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
wb.addEventListener('waiting', showSkipWaitingPrompt);
|
||
|
wb.addEventListener('externalwaiting', showSkipWaitingPrompt);
|
||
|
|
||
|
wb.register().then((r) => registration = r);
|
||
|
});
|
||
|
}
|