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>
</>
);
} |