import React, { useState, useEffect } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; import { FolderType } from '../../../Types/FolderType'; import './share.css'; import { Button, NativeSelect, Typography, Box, Divider } from '@mui/material'; import ReturnButton from 'src/components/ReturnButton/ReturnButton'; import ApiService from '../../../services/ApiService'; const Share: React.FC = () => { const navigate = useNavigate(); const { id } = useParams(); const [quizTitle, setQuizTitle] = useState(''); const [selectedFolder, setSelectedFolder] = useState(''); const [folders, setFolders] = useState([]); const [quizExists, setQuizExists] = useState(false); const [loading, setLoading] = useState(true); useEffect(() => { const fetchData = async () => { try { if (!id) { window.alert(`Une erreur est survenue.\n Le quiz n'a pas été trouvé\nVeuillez réessayer plus tard`) console.error('Quiz not found for id:', id); navigate('/teacher/dashboard'); return; } if (!ApiService.isLoggedIn()) { window.alert(`Vous n'êtes pas connecté.\nVeuillez vous connecter et revenir à ce lien`); navigate("/login"); return; } const quizIds = await ApiService.getAllQuizIds(); if (quizIds.includes(id)) { setQuizExists(true); setLoading(false); return; } const userFolders = await ApiService.getUserFolders(); if (userFolders.length == 0) { window.alert(`Vous n'avez aucun dossier.\nVeuillez en créer un et revenir à ce lien`) navigate('/teacher/dashboard'); return; } setFolders(userFolders as FolderType[]); const title = await ApiService.getSharedQuiz(id); if (!title) { window.alert(`Une erreur est survenue.\n Veuillez réessayer plus tard`) console.error('Quiz not found for id:', id); navigate('/teacher/dashboard'); return; } setQuizTitle(title); setLoading(false); } catch (error) { console.error('Error fetching data:', error); setLoading(false); navigate('/teacher/dashboard'); } }; fetchData(); }, [id, navigate]); const handleSelectFolder = (event: React.ChangeEvent) => { setSelectedFolder(event.target.value); }; const handleQuizSave = async () => { try { if (selectedFolder == '') { alert("Veuillez choisir un dossier"); return; } if (!id) { window.alert(`Une erreur est survenue.\n Le quiz n'a pas été trouvé\nVeuillez réessayer plus tard`) console.error('Quiz not found for id:', id); navigate('/teacher/dashboard'); return; } await ApiService.receiveSharedQuiz(id, selectedFolder) navigate('/teacher/dashboard'); } catch (error) { window.alert(`Une erreur est survenue.\n Veuillez réessayer plus tard`) console.log(error) } }; if (loading) { return
Chargement...
; } if (quizExists) { return (
Quiz déjà existant
Le quiz que vous essayez d'importer existe déjà sur votre compte. Si vous souhaitiez créer une copie de ce quiz, vous pouvez utiliser la fonction "Dupliquer" disponible dans votre tableau de bord.
); } return (
Importation du Quiz: {quizTitle}
Vous êtes sur le point d'importer le quiz {quizTitle}, choisissez un dossier dans lequel enregistrer ce nouveau quiz.
{folders.map((folder: FolderType) => ( ))}
); }; export default Share;