'use client'; import { useMemo } from 'react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { useNumber } from '@/hooks/useNumerFormatter'; import type { IChartData } from '@/trpc/client'; import { cn } from '@/utils/cn'; import { DropdownMenuPortal } from '@radix-ui/react-dropdown-menu'; import { round } from '@openpanel/common'; import { NOT_SET_VALUE } from '@openpanel/constants'; import { PreviousDiffIndicator } from '../PreviousDiffIndicator'; import { useChartContext } from './ChartProvider'; import { SerieIcon } from './SerieIcon'; import { SerieName } from './SerieName'; interface ReportBarChartProps { data: IChartData; } export function ReportBarChart({ data }: ReportBarChartProps) { const { editMode, metric, onClick, limit, dropdownMenuContent } = useChartContext(); const number = useNumber(); const series = useMemo( () => (editMode ? data.series : data.series.slice(0, limit || 10)), [data, editMode, limit] ); const maxCount = Math.max(...series.map((serie) => serie.metrics[metric])); return (