import { useTranslation } from "react-i18next"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; type ConnectionQualityIndicatorProps = { quality: "excellent" | "fair" | "poor" | "unusable"; expectedFps: number; reconnects: number; stalls: number; }; export function ConnectionQualityIndicator({ quality, expectedFps, reconnects, stalls, }: ConnectionQualityIndicatorProps) { const { t } = useTranslation(["views/system"]); const getColorClass = (quality: string): string => { switch (quality) { case "excellent": return "bg-success"; case "fair": return "bg-yellow-500"; case "poor": return "bg-orange-500"; case "unusable": return "bg-destructive"; default: return "bg-gray-500"; } }; const qualityLabel = t(`cameras.connectionQuality.${quality}`); return (
{t("cameras.connectionQuality.title")}
{qualityLabel}
{t("cameras.connectionQuality.expectedFps")}:{" "} {expectedFps.toFixed(1)} {t("cameras.connectionQuality.fps")}
{t("cameras.connectionQuality.reconnectsLastHour")}:{" "} {reconnects}
{t("cameras.connectionQuality.stallsLastHour")}: {stalls}
); }