"use client"; import { motion } from "framer-motion"; import { CalendarClock, MapPinned, Waves, CloudLightning } from "lucide-react"; import type { WeatherWarning } from "@/types/imgw"; import { formatDateTime } from "@/lib/weather-utils"; import { Card } from "@/components/ui/card"; import { cn } from "@/lib/utils"; import { useI18n } from "@/lib/i18n"; export function WarningCard({ warning, index = 0 }: { warning: WeatherWarning; index?: number }) { const { language, t } = useI18n(); const Icon = warning.kind === "hydro" ? Waves : CloudLightning; const level = warning.level; const levelLabel = level === -1 ? t("warnings.drought") : level === null ? t("warnings.levelUnknown") : t("warnings.level", { level }); const areasLabel = warning.areas.length > 8 ? `${warning.areas.slice(0, 8).join(", ")} ${t("warnings.moreAreas", { count: warning.areas.length - 8 })}` : warning.areas.join("; "); return (
{levelLabel}

{warning.kind === "hydro" ? t("warnings.hydro") : t("warnings.meteo")}

{warning.title || (warning.kind === "hydro" ? t("warnings.genericHydro") : t("warnings.genericMeteo"))}

{warning.description &&

{warning.description}

}

{formatDateTime(warning.validFrom, language)} — {warning.validTo ? formatDateTime(warning.validTo, language) : t("warnings.untilCancelled")}

{areasLabel || t("warnings.areaUnknown")}

{warning.probability !== null &&

{t("warnings.probability", { value: warning.probability })}

}
); }