From 6929d8f51f39fcfe679fb0205bd264cca06ed81d Mon Sep 17 00:00:00 2001 From: M1 Date: Tue, 17 Mar 2026 07:35:54 +0400 Subject: [PATCH] fix: atomic SVG replaceWith() on sparkline update, no empty-frame bounce --- apps/web/src/views/home.ejs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/web/src/views/home.ejs b/apps/web/src/views/home.ejs index a39b435..32303cc 100644 --- a/apps/web/src/views/home.ejs +++ b/apps/web/src/views/home.ejs @@ -95,7 +95,14 @@ _fetchingSparkline.add(ping.monitor_id); try { const res = await fetch(`/dashboard/monitors/${ping.monitor_id}/sparkline`, { credentials: 'same-origin' }); - if (res.ok) sparkEl.innerHTML = await res.text(); + if (res.ok) { + const tmp = document.createElement('div'); + tmp.innerHTML = await res.text(); + const newSvg = tmp.firstElementChild; + const oldSvg = sparkEl.querySelector('svg'); + if (newSvg && oldSvg) oldSvg.replaceWith(newSvg); + else if (newSvg) sparkEl.appendChild(newSvg); + } } catch {} _fetchingSparkline.delete(ping.monitor_id); });