data utils fix

This commit is contained in:
Alex Holliday committed 2026-01-05 20:23:20 +00:00
1 parent afb30dceff
commit 9583332852
3 files changed
+24 -13

No files matched your search

@@ -90,10 +90,7 @@ export const ChartResponseTime = ({
}) => {
const theme = useTheme();
const uiTimezone = useAppSelector((state: any) => state.ui.timezone);
const normalized = normalizeResponseTimes<GroupedCheck, "avgResponseTime">(
checks,
"avgResponseTime"
);
const normalized = normalizeResponseTimes(checks, "avgResponseTime");
return (
<BaseChart
icon={<Clock size={20} strokeWidth={1.5} />}
+23 -7
View File
@@ -2,7 +2,7 @@ const MIN_OUT = 10;
const MAX_OUT = 100;
export const normalizeResponseTimes = <
T extends Record<K, number>,
T,
K extends keyof T,
>(
checks: T[],
@@ -22,10 +22,16 @@ export const normalizeResponseTimes = <
];
}
const getVal = (check: T): number => {
const v = check[key] as unknown;
return typeof v === "number" && Number.isFinite(v) ? v : 0;
};
const { min, max } = checks.reduce(
(acc, check) => {
if (check[key] > acc.max) acc.max = check[key];
if (check[key] < acc.min) acc.min = check[key];
const v = getVal(check);
if (v > acc.max) acc.max = v;
if (v < acc.min) acc.min = v;
return acc;
},
{ max: -Infinity, min: Infinity }
@@ -36,7 +42,7 @@ export const normalizeResponseTimes = <
return checks.map((check) => ({
...check,
normalResponseTime:
MIN_OUT + ((check[key] - min) * (MAX_OUT - MIN_OUT)) / range,
MIN_OUT + ((getVal(check) - min) * (MAX_OUT - MIN_OUT)) / range,
}));
};
@@ -61,7 +67,8 @@ export const getResponseColor = (
const toHex = (c: number) => c.toString(16).padStart(2, "0");
const clamp = (n: number) => Math.min(255, Math.max(0, Math.round(n)));
const rgbToHex = (r: number, g: number, b: number) => `#${toHex(clamp(r))}${toHex(clamp(g))}${toHex(clamp(b))}`;
const rgbToHex = (r: number, g: number, b: number) =>
`#${toHex(clamp(r))}${toHex(clamp(g))}${toHex(clamp(b))}`;
const normalizeToHex = (value: string) => {
const v = value.trim();
@@ -69,7 +76,10 @@ export const getResponseColor = (
const h = v.slice(1);
const full =
h.length === 3
? h.split("").map((c) => c + c).join("")
? h
.split("")
.map((c) => c + c)
.join("")
: h.substring(0, 6);
return `#${full.toLowerCase()}`;
}
@@ -88,7 +98,13 @@ export const getResponseColor = (
const parseHex = (hex: string) => {
const h = hex.replace("#", "");
const full = h.length === 3 ? h.split("").map((c) => c + c).join("") : h;
const full =
h.length === 3
? h
.split("")
.map((c) => c + c)
.join("")
: h;
const n = parseInt(full, 16);
return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };
};
@@ -584,8 +584,6 @@ class MongoCheckRepository implements IChecksRepository {
return base;
});
console.log(checks);
return checks.map(this.toAggregateCheck);
};
}