import { format } from "date-fns"; import { UptimeData } from "@/types/service.types"; import { getStatusInfo } from "./utils"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { useTheme } from "@/contexts/ThemeContext"; import { useLanguage } from "@/contexts/LanguageContext"; interface IncidentTableProps { incidents: UptimeData[]; } export function IncidentTable({ incidents }: IncidentTableProps) { const { theme } = useTheme(); const { t } = useLanguage(); if (incidents.length === 0) { return null; } return ( {t("time")} {t("status")} {t("responseTime")} {t("errorMessage")} {t("details")} {incidents.map((check, index) => { const statusInfo = getStatusInfo(check.status); const timestamp = new Date(check.timestamp); return (
{format(timestamp, 'MMM dd, yyyy')} {format(timestamp, 'h:mm a')}
{statusInfo.badge}
{check.status !== "paused" && check.responseTime > 0 ? `${check.responseTime}ms` : "N/A"} {check.error_message ? (
{check.error_message}
) : ( - )}
{check.details ? (
{check.details}
) : ( - )}
); })}
); }