import type React from "react"; import { useTranslation } from "react-i18next"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import { Separator } from "./ui/separator"; interface ServiceTrackerProps { days: Array<{ completed: boolean; date?: Date; uptime: number; delay: number; }>; className?: string; title?: string; uptime?: number; avgDelay?: number; } export const ServiceTrackerClient: React.FC = ({ days, className, title, uptime = 100, avgDelay = 0, }) => { const { t } = useTranslation(); const customBackgroundImage = (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined; const getUptimeColor = (uptime: number) => { if (uptime >= 99) return "text-emerald-500"; if (uptime >= 95) return "text-amber-500"; return "text-rose-500"; }; const getDelayColor = (delay: number) => { if (delay < 100) return "text-emerald-500"; if (delay < 300) return "text-amber-500"; return "text-rose-500"; }; const getStatusColor = (uptime: number) => { if (uptime >= 99) return "bg-emerald-500"; if (uptime >= 95) return "bg-amber-500"; return "bg-rose-500"; }; return (
{title}
{avgDelay.toFixed(0)}ms {uptime.toFixed(1)}% {t("serviceTracker.uptime")}
{days.map((day, index) => (

{day.date?.toLocaleDateString()}

{t("serviceTracker.uptime")}: 95 ? "text-green-500" : "text-red-500", )} > {day.uptime.toFixed(1)}%
{t("serviceTracker.delay")}: {day.delay.toFixed(0)}ms
))}
30 {t("serviceTracker.daysAgo")} {t("serviceTracker.today")}
); }; export default ServiceTrackerClient;