import React from "react"; import { HardDrive } from "lucide-react"; import { useTranslation } from "react-i18next"; import type { ServerMetrics } from "@/ui/main-axios.ts"; import { RechartsPrimitive } from "@/components/ui/chart.tsx"; const { RadialBarChart, RadialBar, PolarAngleAxis, ResponsiveContainer } = RechartsPrimitive; interface DiskWidgetProps { metrics: ServerMetrics | null; metricsHistory: ServerMetrics[]; } export function DiskWidget({ metrics }: DiskWidgetProps) { const { t } = useTranslation(); const radialData = React.useMemo(() => { const percent = metrics?.disk?.percent || 0; return [ { name: "Disk", value: percent, fill: "#fb923c", }, ]; }, [metrics]); return (

{t("serverStats.diskUsage")}

{typeof metrics?.disk?.percent === "number" ? `${metrics.disk.percent}%` : "N/A"}
{(() => { const used = metrics?.disk?.usedHuman; const total = metrics?.disk?.totalHuman; if (used && total) { return `${used} / ${total}`; } return "N/A"; })()}
{(() => { const available = metrics?.disk?.availableHuman; return available ? `${t("serverStats.available")}: ${available}` : `${t("serverStats.available")}: N/A`; })()}
); }