(() => { 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(); })();