forked from cybrespace/pinafore
22 lines
751 B
JavaScript
22 lines
751 B
JavaScript
|
import { toast } from './toast'
|
||
|
import { keyval } from './database/keyval'
|
||
|
|
||
|
function onUpdateFound(registration) {
|
||
|
const newWorker = registration.installing
|
||
|
|
||
|
newWorker.addEventListener('statechange', async () => {
|
||
|
if (!(await keyval.get('serviceworker_installed'))) {
|
||
|
await keyval.set('serviceworker_installed', true)
|
||
|
return
|
||
|
}
|
||
|
if (newWorker.state === 'activated' && navigator.serviceWorker.controller) {
|
||
|
toast.say('App update available. Reload to update.')
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if (!location.origin.match('localhost') && 'serviceWorker' in navigator) {
|
||
|
navigator.serviceWorker.register('/service-worker.js').then(registration => {
|
||
|
registration.addEventListener('updatefound', () => onUpdateFound(registration))
|
||
|
})
|
||
|
}
|