From f638011d63e41cc478c5d84da47c29e2f929e3eb Mon Sep 17 00:00:00 2001 From: MacRimi Date: Fri, 6 Mar 2026 20:54:40 +0100 Subject: [PATCH] Update latency-detail-modal.tsx --- AppImage/components/latency-detail-modal.tsx | 62 +++++++------------- 1 file changed, 21 insertions(+), 41 deletions(-) diff --git a/AppImage/components/latency-detail-modal.tsx b/AppImage/components/latency-detail-modal.tsx index 827f398f..9cc5c17f 100644 --- a/AppImage/components/latency-detail-modal.tsx +++ b/AppImage/components/latency-detail-modal.tsx @@ -177,16 +177,26 @@ const generateLatencyReport = (report: ReportData) => { let chartSvg = '

Not enough data points for chart

' if (chartData.length >= 2) { - const minVal = Math.min(...chartData) - const maxVal = Math.max(...chartData) - const range = maxVal - minVal || 1 + const rawMin = Math.min(...chartData) + const rawMax = Math.max(...chartData) + // Ensure a minimum range of 10ms or 20% of the average to avoid flat lines + const avgVal = chartData.reduce((a, b) => a + b, 0) / chartData.length + const minRange = Math.max(10, avgVal * 0.2) + const range = Math.max(rawMax - rawMin, minRange) + // Center the data if range was expanded + const midPoint = (rawMin + rawMax) / 2 + const minVal = midPoint - range / 2 + const maxVal = midPoint + range / 2 + const width = 700 const height = 120 - const padding = 30 + const padding = 40 + const chartHeight = height - padding * 2 + const chartWidth = width - padding * 2 const points = chartData.map((val, i) => { - const x = padding + (i / (chartData.length - 1)) * (width - padding * 2) - const y = height - padding - ((val - minVal) / range) * (height - padding * 2) + const x = padding + (i / (chartData.length - 1)) * chartWidth + const y = padding + chartHeight - ((val - minVal) / range) * chartHeight return `${x},${y}` }).join(' ') @@ -203,9 +213,9 @@ const generateLatencyReport = (report: ReportData) => { - ${maxVal.toFixed(0)}ms - ${((minVal + maxVal) / 2).toFixed(0)}ms - ${minVal.toFixed(0)}ms + ${Math.round(maxVal)}ms + ${Math.round((minVal + maxVal) / 2)}ms + ${Math.round(minVal)}ms ${chartData.length} samples @@ -223,7 +233,7 @@ const generateLatencyReport = (report: ReportData) => { * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #1a1a2e; background: #fff; font-size: 13px; line-height: 1.5; } - @page { margin: 15mm 15mm 20mm 15mm; size: A4; } + @page { margin: 10mm 12mm 12mm 12mm; size: A4; } @media print { .no-print { display: none !important; } .page-break { page-break-before: always; } @@ -240,7 +250,7 @@ const generateLatencyReport = (report: ReportData) => { .rpt-footer { color: #4b5563; } } @media screen { - body { max-width: 1000px; margin: 0 auto; padding: 24px 32px; padding-top: 64px; } + body { max-width: 900px; margin: 0 auto; padding: 16px 20px; padding-top: 56px; } } /* Top bar for screen only */ @@ -637,36 +647,6 @@ ${report.isRealtime && report.realtimeResults.length > 0 ? `
Generated: ${now} | Report ID: PMXL-${Date.now().toString(36).toUpperCase()}
-
-
Samples per Test
-
3 consecutive pings
-
-
-
Target
-
${report.targetLabel}
-
-
-
Target IP
-
${report.target === 'gateway' ? 'Default Gateway' : report.target === 'cloudflare' ? '1.1.1.1' : '8.8.8.8'}
-
- -
-

Performance Rating

-

${ - statusText === 'Excellent' ? 'Network latency is excellent. No action required.' : - statusText === 'Good' ? 'Network latency is within acceptable parameters.' : - statusText === 'Fair' ? 'Network latency is elevated. Consider investigating network congestion or routing issues.' : - statusText === 'Poor' ? 'Network latency is critically high. Immediate investigation recommended.' : - 'Unable to determine network status.' - }

-
- - - - `