import { PolarAngleAxis, PolarGrid, PolarRadiusAxis, Radar, RadarChart, } from "recharts"; import { useAverages, useGrades, type User } from "~/lib/api"; import { ChartContainer, ChartTooltip, ChartTooltipContent } from "../ui/chart"; import { Award } from "lucide-react"; import { useState } from "react"; import { Tabs, TabsList, tabsStyle, TabsTrigger } from "../ui/tabs"; import AverageChart from "./average-chart"; import GradesChart from "./grades-chart"; const periods = [ { id: "YEAR", label: "Cette année", }, { id: "TRIMESTER", label: "Ce trimestre", }, { id: "MONTH", label: "Ce mois", }, ]; export default function GradesPage({ user }: { user: User }) { const [period, setPeriod] = useState(periods[0].id); const { grades, averages, subjects, isLoading, isError } = useGrades(period); const { subjectAverages, globalAverage, isLoading: loading, isError: error, } = useAverages(period); return (
{/* Tabs */} {periods.map((period) => ( {period.label} ))} {isNaN(globalAverage) ? (
Aucune note disponible pour cette période.
) : isLoading || loading ? (
Chargement...
) : isError || error ? (
Une erreur est survenue lors de la récupération des données.
) : ( <> {/* Global average */}
Moyenne générale
{globalAverage} / 20
{/* Charts - Mobile First Layout */}
{/* Grade Trends */}

Votre progression

Suivez vos notes au fil du temps

{/* Grade Trends */}

Vos moyennes par matière

Comparez vos moyennes par matière

{/* Radar chart */}

Vos points forts

Visualisez vos performances par matière

} />
)}
); }