import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, } from "@/components/ui/chart"; import { formatTimestamp } from "@/lib/utils"; import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"; interface ContainerMetric { timestamp: string; BlockIO: { read: number; write: number; readUnit: string; writeUnit: string; }; } interface Props { data: ContainerMetric[]; } const chartConfig = { read: { label: "Read", color: "hsl(217, 91%, 60%)", // Azul brillante }, write: { label: "Write", color: "hsl(142, 71%, 45%)", // Verde brillante }, } satisfies ChartConfig; export const ContainerBlockChart = ({ data }: Props) => { const formattedData = data.map((metric) => ({ timestamp: metric.timestamp, read: metric.BlockIO.read, write: metric.BlockIO.write, readUnit: metric.BlockIO.readUnit, writeUnit: metric.BlockIO.writeUnit, })); const latestData = formattedData[formattedData.length - 1] || { timestamp: "", read: 0, write: 0, readUnit: "B", writeUnit: "B", }; return ( Block I/O Read: {latestData.read} {latestData.readUnit} / Write: {latestData.write} {latestData.writeUnit} formatTimestamp(value)} /> { if (active && payload && payload.length) { const data = payload?.[0]?.payload; return (
Time {formatTimestamp(label)}
Read {data.read} {data.readUnit}
Write {data.write} {data.writeUnit}
); } return null; }} /> } verticalAlign="bottom" align="center" />
); };