* first attempt * progress * working * working * test timeago * rm * get timeago working * reduce size * fix whitespace * more intl stuff * more effort * more work * more progress * more work * more intl * set lang=LOCALE * flatten * more work * add ltr/rtl * more work * add comments * yet more work * still more work * more work * fix tests * more test and string fixes * fix test * fix test * fix test * fix some more strings, add test * fix snackbar * fix } * fix typo * fix english * measure perf * start on french * more work on french * more french * more french * finish french * fix some missing translations * update readme * fix test
28 lines
843 B
JavaScript
28 lines
843 B
JavaScript
import { snackbar } from '../_components/snackbar/snackbar'
|
|
|
|
async function skipWaiting () {
|
|
const reg = await navigator.serviceWorker.getRegistration()
|
|
if (!reg || !reg.waiting) {
|
|
return
|
|
}
|
|
reg.waiting.postMessage('skip-waiting')
|
|
}
|
|
|
|
function onUpdateFound (registration) {
|
|
const newWorker = registration.installing
|
|
|
|
newWorker.addEventListener('statechange', async () => {
|
|
if (newWorker.state === 'installed' && navigator.serviceWorker.controller) {
|
|
snackbar.announce('intl.updateAvailable', 'intl.reload', async () => {
|
|
await skipWaiting()
|
|
document.location.reload(true)
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
if ('serviceWorker' in navigator) {
|
|
navigator.serviceWorker.register('/service-worker.js').then(registration => {
|
|
registration.addEventListener('updatefound', () => onUpdateFound(registration))
|
|
})
|
|
}
|