Show each curve's slept hours in the Sleep trend legend

Today, Yesterday and the N-day average chips now carry their totals
(e.g. "Yesterday 12.8h"), matching the projected chip.
This commit is contained in:
Alexander Heldt
2026-07-15 10:43:22 +00:00
parent ab0e51108c
commit 0e24ac989d
3 changed files with 22 additions and 14 deletions
+19 -12
View File
@@ -1394,18 +1394,25 @@
const curves = sleepTrendCurves(events);
drawSleepTrendChart(curves);
// Drop legend chips for missing reference lines (no data for them yet),
// and keep the average chip's label in step with the chart-days picker.
const yLegend = document.getElementById("legend-trend-yesterday");
const aLegend = document.getElementById("legend-trend-avg");
const aText = document.getElementById("legend-trend-avg-text");
const pLegend = document.getElementById("legend-trend-projected");
const pText = document.getElementById("legend-trend-projected-text");
if (yLegend) yLegend.hidden = !curves.yesterday;
if (aLegend) aLegend.hidden = !curves.avg;
if (aText) aText.textContent = `${curves.avgDays}-day avg`;
if (pLegend) pLegend.hidden = !curves.projected;
if (pText && curves.projected) {
pText.textContent = `Projected ~${curves.projected[curves.projected.length - 1].y.toFixed(1)}h`;
// keep the average chip's label in step with the chart-days picker, and
// write each curve's slept-hours total into its chip.
const chip = (id) => document.getElementById(id);
const hrs = (pts) => `${pts[pts.length - 1].y.toFixed(1)}h`;
chip("legend-trend-today-text").textContent = `Today ${hrs(curves.today)}`;
const yLegend = chip("legend-trend-yesterday");
yLegend.hidden = !curves.yesterday;
if (curves.yesterday) {
chip("legend-trend-yesterday-text").textContent = `Yesterday ${hrs(curves.yesterday)}`;
}
const aLegend = chip("legend-trend-avg");
aLegend.hidden = !curves.avg;
if (curves.avg) {
chip("legend-trend-avg-text").textContent = `${curves.avgDays}-day avg ${hrs(curves.avg)}`;
}
const pLegend = chip("legend-trend-projected");
pLegend.hidden = !curves.projected;
if (curves.projected) {
chip("legend-trend-projected-text").textContent = `Projected ~${hrs(curves.projected)}`;
}
}