import { useState, useEffect } from "react"; import CarouselCompetences from "./CarouselCompetences"; interface ModalGlossaireProps { glossaire: any[]; // Liste complète des mots-clés } export default function ModalGlossaire({ glossaire }: ModalGlossaireProps) { const [selectedMot, setSelectedMot] = useState(null); useEffect(() => { // 🔥 Détecter si un mot-clé est dans l'URL (#glossaire-mot) function checkHash() { const hash = window.location.hash.replace("#glossaire-", ""); const mot = glossaire.find((g) => g.mot_clef.toLowerCase() === hash.toLowerCase()); setSelectedMot(mot || null); } window.addEventListener("hashchange", checkHash); checkHash(); // Vérifier au chargement return () => { window.removeEventListener("hashchange", checkHash); }; }, [glossaire]); if (!selectedMot) return null; return (
{/* Bouton de fermeture */} {/* Titre */}

{selectedMot.mot_clef}

{/* Description */}

{selectedMot.description}

{/* Carrousel d'images si disponible */} {selectedMot.images && selectedMot.images.length > 0 && ( ({ url: `http://localhost:1337${img?.formats?.large?.url || img?.url}`, alt: img.name || "Illustration", }))} className="w-full h-64" /> )}
); }