import { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import { api } from '../../lib/api'; import { useAuth } from '../../stores/useAuth'; import { Skeleton } from '../../components/ui/Skeleton'; interface Score { id: string; topic: string; score: number; total_questions: number; created_at: string; revision_id?: string; } export function HistoryWidget() { const [history, setHistory] = useState([]); const [loading, setLoading] = useState(true); const { activeLearner } = useAuth(); useEffect(() => { const fetchHistory = async () => { try { const params = activeLearner ? { learner_id: activeLearner.id } : {}; const response = await api.get('/quiz/history', { params }); setHistory(response.data); } catch (error) { console.error("Failed to load history", error); } finally { setLoading(false); } }; fetchHistory(); }, [activeLearner]); if (loading) { return (
{[1, 2, 3].map((i) => (
))}
); } if (history.length === 0) { return (
📚

Aucune révision pour le moment

Scannez un cours pour commencer à apprendre !

); } return (

Révisions Récentes

Total: {history.length}
    {history.map((item) => (
  • {item.topic}

    {new Date(item.created_at).toLocaleDateString()}

    {item.revision_id && ( Revoir )}
    = 0.8 ? 'border-emerald-100 text-emerald-600 bg-emerald-50 shadow-lg shadow-emerald-100/50' : (item.score / item.total_questions) >= 0.5 ? 'border-amber-100 text-amber-600 bg-amber-50 shadow-lg shadow-amber-100/50' : 'border-red-100 text-red-600 bg-red-50 shadow-lg shadow-red-100/50' }`}> {item.score}/{item.total_questions}
  • ))}
); }