File size: 1,346 Bytes
9205030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import { ScoreTrendChart } from "./ScoreTrendChart";
import { BreakdownCharts, type ExamTypeItem, type SectionTypeItem, type FormatItem } from "./BreakdownCharts";
import { TimeAnalyticsPanel, type SectionTimeItem, type FormatTimeItem, type TimeTrendItem } from "./TimeAnalyticsPanel";

interface ChartsBundleProps {
  trend: { date: string; attempts: number; avgScorePct: number }[] | undefined;
  byExamType: ExamTypeItem[] | undefined;
  bySectionType: SectionTypeItem[] | undefined;
  byFormat: FormatItem[] | undefined;
  sectionTime: SectionTimeItem[] | undefined;
  formatTimeData: FormatTimeItem[] | undefined;
  timeTrend: TimeTrendItem[] | undefined;
}

export default function ChartsBundle({
  trend,
  byExamType,
  bySectionType,
  byFormat,
  sectionTime,
  formatTimeData,
  timeTrend,
}: ChartsBundleProps) {
  return (
    <>
      <div className="mb-8">
        <ScoreTrendChart data={trend} />
      </div>
      <div className="mb-8">
        <BreakdownCharts
          byExamType={byExamType}
          bySectionType={bySectionType}
          byFormat={byFormat}
        />
      </div>
      <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
        <TimeAnalyticsPanel
          sectionTime={sectionTime}
          formatTimeData={formatTimeData}
          timeTrend={timeTrend}
        />
      </div>
    </>
  );
}