import { formatDatum, formatTageBis, tageBis } from "@/lib/format"; import { STATUS_TEXT, statusAusDatenbank, type AnzeigeStatus } from "@/lib/anzeige"; import { FARB_KLASSE, type Farbton } from "./SmallBox"; export function Badge({ farbe, children }: { farbe: Farbton; children: React.ReactNode }) { return {children}; } const STATUS_FARBE: Record = { active: "success", notfound: "neutral", invalid: "danger", expired: "danger", suspended: "warning", unknown: "neutral", }; export function StatusBadge({ status }: { status: string }) { const anzeige = statusAusDatenbank(status); return {STATUS_TEXT[anzeige]}; } /** Ablaufdatum mit Ampel: rot unter 14 Tagen, gelb unter 30 Tagen, sonst Info. */ export function AblaufBadge({ datum, heute }: { datum: string | null; heute: Date }) { if (!datum) return –; const tage = tageBis(datum, heute); const farbe: Farbton = tage === null || tage < 14 ? "danger" : tage < 30 ? "warning" : "info"; return ( {formatDatum(datum)} {formatTageBis(tage)} ); } export function EinkaufBadge({ bezahlt }: { bezahlt: boolean | null }) { if (bezahlt === null) return Keine Rechnung; return bezahlt ? Bezahlt : Offen; } export function VerkaufBadge({ erstellt, bezahlt }: { erstellt: boolean; bezahlt: boolean }) { if (!erstellt) return Fehlt; return bezahlt ? Bezahlt : Erstellt; } export function KeineMeldungBadge() { return (