fix: static HTML label spans outside swap zone, chart only returns SVG + label update script

This commit is contained in:
M1
2026-03-17 07:32:39 +04:00
parent 1e90b5f3c2
commit e8bfaa42d7
2 changed files with 21 additions and 11 deletions
+16 -10
View File
@@ -39,16 +39,22 @@ function latencyChartSSR(pings: any[]): string {
const dots = points.map((p: number[], i: number) =>
!ups[i] ? `<circle cx="${p[0]}" cy="${p[1]}" r="3" fill="#f87171"/>` : ''
).join('');
return `<div class="relative w-full h-full">
<svg viewBox="0 0 ${w} ${h}" class="w-full h-full" preserveAspectRatio="none">
<defs><linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#3b82f6" stop-opacity="0.15"/><stop offset="100%" stop-color="#3b82f6" stop-opacity="0"/></linearGradient></defs>
<path d="${areaD}" fill="url(#areaGrad)"/>
<path d="${pathD}" fill="none" stroke="#3b82f6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
${dots}
</svg>
<span class="absolute top-0 left-1 text-gray-500 text-xs leading-none pointer-events-none">${max}ms</span>
<span class="absolute bottom-0 left-1 text-gray-500 text-xs leading-none pointer-events-none">${min}ms</span>
</div>`;
return `<svg viewBox="0 0 ${w} ${h}" class="w-full h-full" preserveAspectRatio="none">
<defs><linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1"><stop offset="0%" stop-color="#3b82f6" stop-opacity="0.15"/><stop offset="100%" stop-color="#3b82f6" stop-opacity="0"/></linearGradient></defs>
<path d="${areaD}" fill="url(#areaGrad)"/>
<path d="${pathD}" fill="none" stroke="#3b82f6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
${dots}
</svg>
<script>
(function() {
const el = document.currentScript?.previousElementSibling;
if (!el) return;
const maxEl = document.getElementById('chart-label-max');
const minEl = document.getElementById('chart-label-min');
if (maxEl) maxEl.textContent = '${max}ms';
if (minEl) minEl.textContent = '${min}ms';
})();
</script>`;
}
function escapeHtmlSSR(str: string): string {