The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/client/serviceWorker.ts

40 lines
795 B

const KEY = 'sw_last_reload';
const RELOAD_WINDOW = 1000 * 10;
function reload() {
const lastReload = localStorage.getItem(KEY);
if (lastReload) {
const last = Date.parse(lastReload);
if (!isNaN(last)) {
const elapsed = Date.now() - last;
if (elapsed < RELOAD_WINDOW) {
return;
}
}
}
localStorage.setItem(KEY, new Date().toISOString());
console.log('service worker: reloading to activate');
window.location.reload();
}
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/enc.js', {
scope: '/',
})
.then((reg) => {
if (reg.active) {
console.log('service worker: installed');
if (!navigator.serviceWorker.controller) {
reload();
}
}
})
.catch((err) => {
console.log(`registration failed: ${err}`);
});
}