24 lines
894 B
JavaScript
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();
|
|
})();
|