import { cn } from "cn" import { type Einheit, wertText } from "@/lib/messung" import type { Messpunkt } from "@/lib/typen" import { Sparkline } from "./Sparkline" const ZUSTAND = { ruhig: { wert: "text-foreground", marke: null }, gelb: { wert: "text-bernstein", marke: "hoch" }, rot: { wert: "text-rot-text", marke: "kritisch" }, } as const /** * Eine Kennzahl mit Verlauf: Beschriftung, der aktuelle Wert groß, darunter die Linie des Zeitraums. * Überschreitet der Wert eine Grenze, färbt er sich und sagt es auch in Worten („hoch“, „kritisch“). */ export function Kennzahl({ label, wert, einheit, punkte, max, zustand = "ruhig", farbe, zeitraumText }: { label: string wert: number | null | undefined einheit: Einheit punkte?: Messpunkt[] max: number zustand?: keyof typeof ZUSTAND farbe?: string /** z. B. „letzte Stunde“ — für die Beschreibung der Linie. */ zeitraumText: string }) { const z = ZUSTAND[zustand] return (
{label} {wertText(wert, einheit)} {z.marke && {z.marke}} {punkte && punkte.length > 1 && ( )} {/* Kommt der Verlauf noch (erster Abruf), bleibt die Höhe gleich — kein Springen der Kacheln. */} {punkte && punkte.length <= 1 && }
) }