import { useRechartDataModel } from '@/hooks/useRechartDataModel'; import { useVisibleSeries } from '@/hooks/useVisibleSeries'; import type { IChartData } from '@/trpc/client'; import { cn } from '@/utils/cn'; import { getChartColor, theme } from '@/utils/theme'; import { useTheme } from 'next-themes'; import React from 'react'; import { Bar, BarChart, CartesianGrid, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts'; import { useXAxisProps, useYAxisProps } from '../common/axis'; import { ReportChartTooltip } from '../common/report-chart-tooltip'; import { ReportTable } from '../common/report-table'; import { useReportChartContext } from '../context'; interface Props { data: IChartData; } function BarHover({ x, y, width, height, top, left, right, bottom }: any) { const themeMode = useTheme(); const bg = themeMode?.theme === 'dark' ? theme.colors['def-100'] : theme.colors['def-300']; return ( ); } export function Chart({ data }: Props) { const { isEditMode, report: { previous, interval }, options: { hideXAxis, hideYAxis }, } = useReportChartContext(); const { series, setVisibleSeries } = useVisibleSeries(data); const rechartData = useRechartDataModel(series); const yAxisProps = useYAxisProps({ hide: hideYAxis, }); const xAxisProps = useXAxisProps({ hide: hideXAxis, interval, }); return ( <>
} cursor={} /> {series.map((serie) => { return ( {previous && ( )} ); })}
{isEditMode && ( )} ); }