import { Rocket } from 'lucide-react' import { useMemo } from 'react' import { Bar, CartesianGrid, BarChart as RechartBarChart, ReferenceLine, XAxis, YAxis, } from 'recharts' import { ChartContainer, ChartTooltip, ChartTooltipContent, Tooltip, TooltipContent, TooltipTrigger, } from 'ui' import { formatChartTimestamp, getChartTimeRangeLabels, INVOCATION_CHART_CONFIG, } from './EdgeFunctionOverview.utils' import type { InvocationChartDatum, InvocationUpdateAnnotation } from './EdgeFunctionOverview.utils' interface EdgeFunctionInvocationsChartProps { chartData: InvocationChartDatum[] dateTimeFormat: string onChartClick: (timestamp: string) => void updateAnnotation?: InvocationUpdateAnnotation } export const EdgeFunctionInvocationsChart = ({ chartData, dateTimeFormat, onChartClick, updateAnnotation, }: EdgeFunctionInvocationsChartProps) => { const timeRangeLabels = useMemo( () => getChartTimeRangeLabels(chartData, dateTimeFormat), [chartData, dateTimeFormat] ) return (
{ const timestamp = tooltipData?.activePayload?.[0]?.payload?.timestamp if (typeof timestamp === 'string') onChartClick(timestamp) }} > formatChartTimestamp(value as string | number | undefined, dateTimeFormat) } indicator="dot" /> } /> {updateAnnotation && ( )} {updateAnnotation && ( Deployment at {formatChartTimestamp(updateAnnotation.updatedAt, dateTimeFormat)} )}
{timeRangeLabels && (
{timeRangeLabels.start} {timeRangeLabels.end}
)}
) }