"use client"; import { useEffect, useState, useMemo } from "react"; import { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "@/components/ui/accordion"; import { FAQItem } from "@/lib/types/infos"; export default function FAQAccordion() { const [faqItems, setFaqItems] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchFAQ = async () => { try { const response = await fetch("/api/infos?type=faq"); const data = await response.json(); setFaqItems(data); } catch (error) { console.error("Erreur lors du chargement de la FAQ:", error); } finally { setLoading(false); } }; fetchFAQ(); }, []); // Grouper les FAQ par catégorie const faqByCategory = useMemo(() => { const grouped: Record = {}; faqItems.forEach((item) => { const category = item.category || "Autres"; if (!grouped[category]) { grouped[category] = []; } grouped[category].push(item); }); return grouped; }, [faqItems]); if (loading) { return (

Chargement...

); } return (
{Object.entries(faqByCategory).map(([category, items]) => (

{items[0]?.icon && {items[0].icon}} {category}

{items.map((item) => ( {item.question}

{item.answer}

))}
))}
); }