Files

24 lines
894 B
JavaScript

(() => {
const badges=document.querySelectorAll('[data-share-unread-count]');
if(!badges.length)return;
const countUrl=badges[0].dataset.countUrl;
let running=false;
const refresh=async()=>{
if(running || document.visibilityState!=='visible')return;
running=true;
try{
const response=await fetch(countUrl,{cache:'no-store',credentials:'same-origin'});
if(!response.ok || response.redirected)return;
const data=await response.json();
badges.forEach(badge=>{badge.textContent=String(data.unread_shares);badge.hidden=!data.unread_shares});
}catch(_){
// Retain the last count until the next successful refresh.
}finally{running=false}
};
document.addEventListener('visibilitychange',refresh);
window.addEventListener('pageshow',refresh);
window.addEventListener('focus',refresh);
setInterval(refresh,15000);
refresh();
})();