import { useState, type ComponentType } from "react"; import { Link } from "react-router-dom"; import { Activity, AlertTriangle, Brain, Gauge, Users } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { Badge } from "@/components/ui/badge"; import { useAdaptiveDashboard, useAdaptiveStudents } from "@/hooks/queries/useAdaptiveEngine"; import type { AdaptiveDashboardMetrics, AdaptiveEngineStudentRow } from "@/types"; import { LineChart, Line, ResponsiveContainer } from "recharts"; export default function AdaptiveDashboard() { const [page, setPage] = useState(1); const limit = 10; const { data: metrics } = useAdaptiveDashboard(); const { data: studentsPage, isLoading } = useAdaptiveStudents({ page, limit }); const m: AdaptiveDashboardMetrics = metrics ?? { active_students: 0, engine_phase: "—", decisions_today: 0, average_improvement: 0, alerts_count: 0, }; const rows: AdaptiveEngineStudentRow[] = studentsPage?.data ?? []; const total = studentsPage?.pagination?.total ?? rows.length; const pages = Math.max(1, Math.ceil(total / limit)); return (
Live decisions and learner risk
Loading…
) : ( <>