import React from 'react'; import type { IChartData } from '@/app/_trpc/client'; import { AutoSizer } from '@/components/AutoSizer'; import { useFormatDateInterval } from '@/hooks/useFormatDateInterval'; import { useRechartDataModel } from '@/hooks/useRechartDataModel'; import { useVisibleSeries } from '@/hooks/useVisibleSeries'; import type { IChartLineType, IInterval } from '@/types'; import { cn } from '@/utils/cn'; import { getChartColor } from '@/utils/theme'; import { CartesianGrid, Line, LineChart, Tooltip, XAxis, YAxis, } from 'recharts'; import { getYAxisWidth } from './chart-utils'; import { useChartContext } from './ChartProvider'; import { ReportChartTooltip } from './ReportChartTooltip'; import { ReportTable } from './ReportTable'; interface ReportLineChartProps { data: IChartData; interval: IInterval; lineType: IChartLineType; } export function ReportLineChart({ lineType, interval, data, }: ReportLineChartProps) { const { editMode, previous } = useChartContext(); const formatDate = useFormatDateInterval(interval); const { series, setVisibleSeries } = useVisibleSeries(data); const rechartData = useRechartDataModel(series); return ( <>
{({ width }) => ( } /> formatDate(m)} tickLine={false} allowDuplicatedCategory={false} /> {series.map((serie) => { return ( {previous && ( )} ); })} )}
{editMode && ( )} ); }