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 (
Keine Meldung
);
}