'use client'; import type { IChartData } from '@/app/_trpc/client'; import { ColorSquare } from '@/components/ColorSquare'; import { fancyMinutes, useNumber } from '@/hooks/useNumerFormatter'; import { theme } from '@/utils/theme'; import AutoSizer from 'react-virtualized-auto-sizer'; import { Area, AreaChart } from 'recharts'; import type { IChartMetric } from '@openpanel/validation'; import { getDiffIndicator, PreviousDiffIndicatorText, } from '../PreviousDiffIndicator'; import { useChartContext } from './ChartProvider'; interface MetricCardProps { serie: IChartData['series'][number]; color?: string; metric: IChartMetric; unit?: string; } export function MetricCard({ serie, color: _color, metric, unit, }: MetricCardProps) { const { previousIndicatorInverted } = useChartContext(); const number = useNumber(); const renderValue = (value: number, unitClassName?: string) => { if (unit === 'min') { return <>{fancyMinutes(value)}>; } return ( <> {number.short(value)} {unit && {unit}} > ); }; const previous = serie.metrics.previous[metric]; const graphColors = getDiffIndicator( previousIndicatorInverted, previous?.state, 'green', 'red', 'blue' ); return (