import React, { useState, useEffect } from "react"; import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper, IconButton, Grid, Typography, CircularProgress, Box } from "@mui/material"; import DeleteIcon from "@mui/icons-material/Delete"; import ApiService from '../../services/ApiService'; import { QuizTypeShort } from "../../Types/QuizType"; const Users: React.FC = () => { const [quizzes, setQuizzes] = useState([]); const [monthlyQuizzes, setMonthlyQuizzes] = useState(0); const [totalUsers, setTotalUsers] = useState(0); const [loading, setLoading] = useState(true); useEffect(() => { const fetchStats = async () => { try { const data = await ApiService.getStats(); setQuizzes(data.quizzes); setTotalUsers(data.total); const currentMonth = new Date().getMonth(); const currentYear = new Date().getFullYear(); const filteredQuizzes = data.quizzes.filter((quiz: QuizTypeShort) => { const quizDate = new Date(quiz.created_at); return quizDate.getMonth() === currentMonth && quizDate.getFullYear() === currentYear; }); setMonthlyQuizzes(filteredQuizzes.length === 0 ? 10 : 0); } catch (error) { console.error("Error fetching quizzes:", error); } finally { setLoading(false); } }; fetchStats(); }, []); const handleDelete = (id: string) => { setQuizzes(quizzes.filter(quiz => quiz._id !== id)); }; const totalQuizzes = quizzes.length; if (loading) { return ( ); } return ( Quiz du Mois {monthlyQuizzes} Quiz total {totalQuizzes} Enseignants {totalUsers} {/* Table */} Enseignant Titre Crée Modifié {quizzes.map((quiz) => ( {quiz.userId} {quiz.title} {new Date(quiz.created_at).toLocaleDateString()} {new Date(quiz.updated_at).toLocaleDateString()} handleDelete(quiz._id)} color="error"> ))}
); }; export default Users;