refactor(dashboard): the chart component is now cleaned up and easier to extend

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-09-12 09:30:48 +02:00
parent 3e19f90e51
commit 558761ca9d
76 changed files with 2910 additions and 2475 deletions

View File

@@ -0,0 +1,39 @@
'use client';
import { useVisibleSeries } from '@/hooks/useVisibleSeries';
import type { IChartData } from '@/trpc/client';
import { cn } from '@/utils/cn';
import { useReportChartContext } from '../context';
import { MetricCard } from './metric-card';
interface Props {
data: IChartData;
}
export function Chart({ data }: Props) {
const {
isEditMode,
report: { metric, unit },
} = useReportChartContext();
const { series } = useVisibleSeries(data, isEditMode ? 20 : 4);
return (
<div
className={cn(
'grid grid-cols-1 gap-4',
isEditMode && 'md:grid-cols-2 lg:grid-cols-3'
)}
>
{series.map((serie) => {
return (
<MetricCard
key={serie.id}
serie={serie}
metric={metric}
unit={unit}
/>
);
})}
</div>
);
}