Fix critical frontend issues: race conditions, memory leaks, silent failures

- Add loading guard to loadPictureSources to prevent concurrent fetches
- Pause perf chart polling and uptime timer when browser tab is hidden
- Disconnect KC and LED preview WebSockets when leaving targets tab
- Add error toasts to loadCaptureTemplates and saveKCBrightness
- Skip auto-refresh polling when document is hidden
- Widen auto-start dashboard cards for better text display

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 17:29:47 +03:00
parent b51839ef3c
commit 82e12ffaac
9 changed files with 86 additions and 17 deletions

View File

@@ -180,3 +180,14 @@ export function stopPerfPolling() {
_pollTimer = null;
}
}
// Pause polling when browser tab becomes hidden, resume when visible
document.addEventListener('visibilitychange', () => {
if (document.hidden) {
stopPerfPolling();
} else {
// Only resume if dashboard is active
const activeTab = localStorage.getItem('activeTab') || 'dashboard';
if (activeTab === 'dashboard') startPerfPolling();
}
});