Files
HealthLog/src/lib/targets/summary-builder.ts
T
Marc-André Bombeck 62eb431d66 release: v1.32.0 — hardening and scalability (#580)
* release: prepare v1.32.0

* test: stabilize water capture re-entry
2026-07-22 04:14:15 +02:00

27 lines
799 B
TypeScript

import type { TargetItem, TargetPageSummary } from "./types";
type SummaryTarget = Pick<
TargetItem,
"type" | "daysInRange7d" | "insufficientData" | "streakDays"
>;
export function buildTargetPageSummary(
targets: ReadonlyArray<SummaryTarget>,
): TargetPageSummary {
const targetsMetThisWeek = targets.filter(
(target) => !target.insufficientData && target.daysInRange7d >= 4,
).length;
let streakHighlight: TargetPageSummary["streakHighlight"] = null;
for (const target of targets) {
if (target.streakDays < 3) continue;
if (!streakHighlight || target.streakDays > streakHighlight.days) {
streakHighlight = { metric: target.type, days: target.streakDays };
}
}
return {
targetsMetThisWeek,
totalTargets: targets.length,
streakHighlight,
};
}