diff --git a/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx b/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx index 962c694b..16450419 100644 --- a/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx +++ b/frontend/components/dashboard/scan-terminal/LiveTemperatureThresholdChart.tsx @@ -279,6 +279,22 @@ export function LiveTemperatureThresholdChart({ const { data, series } = useMemo(() => buildEvidenceChart(row, hourly), [row, hourly]); const threshold = validNumber(row?.target_threshold) ?? validNumber(row?.target_value); const tableRows = series.slice(0, 5).map((item) => ({ ...item, ...seriesStats(item.values) })); + const marketTemperatures = useMemo(() => { + const buckets = row?.distribution_full?.length + ? row.distribution_full + : row?.distribution_preview; + if (!buckets?.length) return null; + const temps = buckets + .map((b) => validNumber(b.value)) + .filter((v): v is number => v !== null) + .sort((a, b) => a - b); + if (!temps.length) return null; + const padding = temps.length > 1 ? temps[1] - temps[0] : 2; + return { + ticks: temps, + domain: [temps[0] - padding, temps[temps.length - 1] + padding] as [number, number], + }; + }, [row]); return ( @@ -327,7 +343,14 @@ export function LiveTemperatureThresholdChart({ - `${Number(v).toFixed(1)}°`} axisLine={{ stroke: "#cbd5e1" }} tickLine={false} /> + `${Number(v).toFixed(1)}°`} + axisLine={{ stroke: "#cbd5e1" }} + tickLine={false} + domain={marketTemperatures?.domain ?? ["auto", "auto"]} + ticks={marketTemperatures?.ticks} + /> {threshold !== null && (