import { Card, CardContent, CardHeader, CardTitle, CardDescription, } from "@bullstudio/ui/components/card"; import { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, type ChartConfig, } from "@bullstudio/ui/components/chart"; import { Bar, BarChart, XAxis, YAxis, CartesianGrid } from "recharts"; import dayjs from "@bullstudio/dayjs"; import type { OverviewMetricsResponse } from "@/integrations/trpc/routers/overview"; type TimeSeriesDataPoint = OverviewMetricsResponse["timeSeries"][number]; type ThroughputChartProps = { data: TimeSeriesDataPoint[]; timeRange: number; }; const chartConfig: ChartConfig = { completed: { label: "Completed", color: "hsl(142, 76%, 36%)", }, failed: { label: "Failed", color: "hsl(0, 84%, 60%)", }, }; export function ThroughputChart({ data, timeRange }: ThroughputChartProps) { const formattedData = data.map((point) => ({ ...point, time: dayjs(point.timestamp).format(timeRange <= 24 ? "HH:mm" : "MMM D"), })); return ( Job Throughput Completed vs failed jobs over the last {timeRange}h } /> } /> ); }