diff --git a/resources/js/pages/monitoring/components/resource-usage-chart.tsx b/resources/js/pages/monitoring/components/resource-usage-chart.tsx index f0f2d198..51c47e86 100644 --- a/resources/js/pages/monitoring/components/resource-usage-chart.tsx +++ b/resources/js/pages/monitoring/components/resource-usage-chart.tsx @@ -1,11 +1,12 @@ import * as React from 'react'; -import { Area, AreaChart, XAxis } from 'recharts'; +import { Area, AreaChart, XAxis, YAxis } from 'recharts'; import { Card, CardContent } from '@/components/ui/card'; import { ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart'; import { Metric } from '@/types/metric'; import { Button } from '@/components/ui/button'; -import { Formatter } from 'recharts/types/component/DefaultTooltipContent'; +import { router } from '@inertiajs/react'; +import { cn } from '@/lib/utils'; interface Props { title: string; @@ -13,10 +14,12 @@ interface Props { dataKey: 'load' | 'memory_used' | 'disk_used'; label: string; chartData: Metric[]; - formatter?: Formatter; + link: string; + formatter?: (value: unknown, name: unknown) => string | number; + single?: boolean; } -export function ResourceUsageChart({ title, color, dataKey, label, chartData, formatter }: Props) { +export function ResourceUsageChart({ title, color, dataKey, label, chartData, link, formatter, single }: Props) { const chartConfig = { [dataKey]: { label: label, @@ -24,37 +27,37 @@ export function ResourceUsageChart({ title, color, dataKey, label, chartData, fo }, } satisfies ChartConfig; - const getCurrentValue = () => { - if (chartData.length === 0) return 'N/A'; - - const value = chartData[chartData.length - 1][dataKey]; - if (formatter) { - return formatter(value, dataKey); - } - - return typeof value === 'number' ? value.toLocaleString() : String(value); - }; - return (

{title}

- {getCurrentValue()} + + {chartData.length > 0 + ? formatter + ? formatter(chartData[chartData.length - 1][dataKey], dataKey) + : chartData[chartData.length - 1][dataKey].toLocaleString() + : 'N/A'} +
- + {!single && ( + + )}
- - + + + { @@ -87,7 +90,7 @@ export function ResourceUsageChart({ title, color, dataKey, label, chartData, fo /> } /> - +