"use client"; import { useEffect, useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { ChevronDown } from "lucide-react"; import { useLanguage } from "@/context/language-context"; import { getAllFaq } from "@/lib/api"; interface FaqItem { questionKey: string; answerKey: string; } export interface FaqBackendItem { id: number; question_ru: string; question_uz: string; answer_ru: string; answer_uz: string; } const defaultItems: FaqItem[] = [ { questionKey: "faq.items.0.question", answerKey: "faq.items.0.answer", }, { questionKey: "faq.items.1.question", answerKey: "faq.items.1.answer", }, { questionKey: "faq.items.2.question", answerKey: "faq.items.2.answer", }, ]; export function FAQ() { const { t, language } = useLanguage(); const [openIndex, setOpenIndex] = useState(0); const [faqItems, setFaqItems] = useState([]); useEffect(() => { async function fetchFaq() { const allFaq = await getAllFaq(); const faqItems: FaqItem[] = allFaq.map((item) => ({ questionKey: language === "uz" ? item.question_uz : item.question_ru, answerKey: language === "uz" ? item.answer_uz : item.answer_ru, })); faqItems.length === 0 ? setFaqItems(defaultItems) : setFaqItems(faqItems); } fetchFaq(); }, [language]); const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: 0.1 }, }, }; const itemVariants = { hidden: { opacity: 0, y: 10 }, visible: { opacity: 1, y: 0 }, }; return (
{/* Header */}

{t.faq.title}

{/* FAQ Items */} {faqItems.map((item, idx) => ( setOpenIndex(openIndex === idx ? null : idx)} className="w-full bg-gray-50 hover:bg-gray-100 transition-colors rounded-lg p-6 text-left" >

{item.questionKey}

{openIndex === idx && (

{item.answerKey}

)}
))}
); }