import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from 'recharts' import { ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, } from '@/components/ui/chart' import { formatShortDate, hourWithMinutes } from '@/lib/utils' import { useMemo } from 'react' import Spinner from '../spinner' export default function MemChart({ chartData, ticks, }: { chartData: { time: number; mem: number; memUsed: number; memCache: number }[] ticks: number[] }) { if (!chartData.length || !ticks.length) { return } const totalMem = useMemo(() => { return Math.ceil(chartData[0]?.mem) }, [chartData]) const chartConfig = useMemo( () => ({ memCache: { label: 'Cache / Buffers', color: 'hsl(var(--chart-2))', }, memUsed: { label: 'Used', color: 'hsl(var(--chart-2))', }, }), [] ) satisfies ChartConfig return ( `${v} GB`} /> {/* todo: short time if first date is same day, otherwise short date */} a.name.localeCompare(b.name)} labelFormatter={(_, data) => formatShortDate(data[0].payload.time)} indicator="line" /> } /> ) }