import React from "react"; import { HardDrive, X } from "lucide-react"; import { Progress } from "@/components/ui/progress.tsx"; import { useTranslation } from "react-i18next"; import type { ServerMetrics } from "@/ui/main-axios.ts"; interface DiskWidgetProps { metrics: ServerMetrics | null; isEditMode: boolean; widgetId: string; onDelete: (widgetId: string, e: React.MouseEvent) => void; } export function DiskWidget({ metrics, isEditMode, widgetId, onDelete, }: DiskWidgetProps) { const { t } = useTranslation(); return (
{isEditMode && ( )}

Disk Usage

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