fix: deduplicate chart axis labels using tickFormatter map

Co-authored-by: aider (gemini/gemini-3.1-pro-preview) <aider@aider.chat>
This commit is contained in:
Tanner
2026-08-25 23:14:26 +00:00
co-authored by aider
parent 42bfc3b768
commit 05f0bb22f7
+42 -2
View File
@@ -84,7 +84,27 @@ function useSensor(measurement, name, end, duration) {
};
const isDST = end.tz('America/Edmonton').isDST();
const tickFormatter = (timeStr) => memoConvertTZ(isDST, timeStr, duration.format);
const labelMap = {};
if (Array.isArray(data)) {
let lastLabel = null;
data.forEach(d => {
const lbl = memoConvertTZ(isDST, d.time, duration.format);
if (lbl !== lastLabel) {
labelMap[d.time] = lbl;
lastLabel = lbl;
} else {
labelMap[d.time] = '';
}
});
}
const tickFormatter = (timeStr) => {
if (labelMap[timeStr] !== undefined) {
return labelMap[timeStr];
}
return memoConvertTZ(isDST, timeStr, duration.format);
};
return [data, loading, tickFormatter];
};
@@ -712,7 +732,27 @@ function MultiLineChart({title, measurement, dataKey, sensors, colors, end, dura
};
const isDST = end.tz('America/Edmonton').isDST();
const tickFormatter = (timeStr) => memoConvertTZ(isDST, timeStr, duration.format);
const labelMap = {};
if (Array.isArray(data)) {
let lastLabel = null;
data.forEach(d => {
const lbl = memoConvertTZ(isDST, d.time, duration.format);
if (lbl !== lastLabel) {
labelMap[d.time] = lbl;
lastLabel = lbl;
} else {
labelMap[d.time] = '';
}
});
}
const tickFormatter = (timeStr) => {
if (labelMap[timeStr] !== undefined) {
return labelMap[timeStr];
}
return memoConvertTZ(isDST, timeStr, duration.format);
};
return (
<ChartContainer