From bfc1acbbe6cd505d5ebd65725e475dddfe8a3a13 Mon Sep 17 00:00:00 2001 From: you Date: Mon, 23 Mar 2026 02:48:20 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20debounce=20theme-refresh=20300ms=20?= =?UTF-8?q?=E2=80=94=20no=20more=20re-render=20spam?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Color picker input events fire dozens of times per second while dragging. Now debounced to 300ms — page re-renders once after you stop dragging. --- public/app.js | 8 ++++++-- public/index.html | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/public/app.js b/public/app.js index eb47d960..183d6809 100644 --- a/public/app.js +++ b/public/app.js @@ -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(); diff --git a/public/index.html b/public/index.html index ebb19887..dbd09fc3 100644 --- a/public/index.html +++ b/public/index.html @@ -85,7 +85,7 @@ - +