Fix: debounce theme-refresh 300ms — no more re-render spam

Color picker input events fire dozens of times per second while
dragging. Now debounced to 300ms — page re-renders once after
you stop dragging.
This commit is contained in:
you
2026-03-23 02:48:20 +00:00
parent f16fce8b7f
commit bfc1acbbe6
2 changed files with 7 additions and 3 deletions
+6 -2
View File
@@ -315,9 +315,13 @@ function navigate() {
}
window.addEventListener('hashchange', navigate);
let _themeRefreshTimer = null;
window.addEventListener('theme-changed', () => {
// Notify current page to re-render without full teardown
window.dispatchEvent(new CustomEvent('theme-refresh'));
if (_themeRefreshTimer) clearTimeout(_themeRefreshTimer);
_themeRefreshTimer = setTimeout(() => {
_themeRefreshTimer = null;
window.dispatchEvent(new CustomEvent('theme-refresh'));
}, 300);
});
window.addEventListener('DOMContentLoaded', () => {
connectWS();
+1 -1
View File
@@ -85,7 +85,7 @@
<script src="region-filter.js?v=1774325000"></script>
<script src="hop-resolver.js?v=1774223973"></script>
<script src="hop-display.js?v=1774221932"></script>
<script src="app.js?v=1774231586"></script>
<script src="app.js?v=1774234100"></script>
<script src="home.js?v=1774233807"></script>
<script src="packets.js?v=1774231586"></script>
<script src="map.js?v=1774231586" onerror="console.error('Failed to load:', this.src)"></script>