'use client'; import { api } from '@/app/_trpc/client'; import type { IChartInput } from '@openpanel/validation'; import { ChartEmpty } from './ChartEmpty'; import { ReportAreaChart } from './ReportAreaChart'; import { ReportBarChart } from './ReportBarChart'; import { ReportHistogramChart } from './ReportHistogramChart'; import { ReportLineChart } from './ReportLineChart'; import { ReportMapChart } from './ReportMapChart'; import { ReportMetricChart } from './ReportMetricChart'; import { ReportPieChart } from './ReportPieChart'; export type ReportChartProps = IChartInput; export function Chart({ interval, events, breakdowns, chartType, name, range, lineType, previous, formula, unit, metric, projectId, startDate, endDate, }: ReportChartProps) { const [references] = api.reference.getChartReferences.useSuspenseQuery({ projectId, startDate, endDate, range, }); const [data] = api.chart.chart.useSuspenseQuery( { // dont send lineType since it does not need to be sent lineType: 'monotone', interval, chartType, events, breakdowns, name, range, startDate, endDate, projectId, previous, formula, unit, metric, }, { keepPreviousData: true, } ); if (data.series.length === 0) { return ; } if (chartType === 'map') { return ; } if (chartType === 'histogram') { return ; } if (chartType === 'bar') { return ; } if (chartType === 'metric') { return ; } if (chartType === 'pie') { return ; } if (chartType === 'linear') { return ( ); } if (chartType === 'area') { return ( ); } return

Unknown chart type

; }