'use client'; import { HTMLAttributes } from 'react'; import { Bar, BarChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'; import { formatMonth } from '@documenso/lib/client-only/format-month'; import { cn } from '@documenso/ui/lib/utils'; import { StargazersType } from './page'; export type MetricsDataKey = 'stars' | 'forks' | 'mergedPRs' | 'openIssues'; export type GithubMetricProps = HTMLAttributes & { data: StargazersType; metricKey: MetricsDataKey; title: string; label: string; chartHeight?: number; }; export const GithubMetric = ({ className, data, metricKey, title, label, chartHeight = 400, ...props }: GithubMetricProps) => { const formattedData = Object.keys(data) .map((key) => ({ month: formatMonth(key), [metricKey]: data[key][metricKey], })) .reverse(); return ( {title} [Number(value), label]} cursor={{ fill: 'hsl(var(--primary) / 10%)' }} /> ); };