diff --git a/app/static/js/app.js b/app/static/js/app.js index 5e35153..28faa82 100644 --- a/app/static/js/app.js +++ b/app/static/js/app.js @@ -482,11 +482,7 @@ function connectChatSocket() { // Real-time device status chatSocket.on('device_status', (data) => { - const statusEl = document.getElementById('connectionStatus'); - if (statusEl) { - statusEl.className = data.connected ? 'connection-status connected' : 'connection-status disconnected'; - statusEl.textContent = data.connected ? 'Connected' : 'Disconnected'; - } + updateStatus(data.connected ? 'connected' : 'disconnected'); }); } @@ -546,6 +542,10 @@ document.addEventListener('DOMContentLoaded', async function() { // Initial badge updates (fast, sync-ish) updatePendingContactsBadge(); loadStatus(); + // Re-poll periodically as a fallback to the 'device_status' socket push — + // a missed/late socket event would otherwise leave the badge stale + // indefinitely on a long-lived tab. + setInterval(loadStatus, 60000); // Map button in menu const mapBtn = document.getElementById('mapBtn'); @@ -972,7 +972,6 @@ async function loadMessages() { if (data.success) { displayMessages(data.messages); - updateStatus('connected'); updateLastRefresh(); updateRegionIndicator(); } else { diff --git a/app/static/js/dm.js b/app/static/js/dm.js index e6df242..0427ec1 100644 --- a/app/static/js/dm.js +++ b/app/static/js/dm.js @@ -134,7 +134,6 @@ function connectChatSocket() { chatSocket.on('connect', () => { console.log('DM: SocketIO connected to /chat'); - updateStatus('connected'); }); chatSocket.on('disconnect', () => {