import React, { useEffect, useState } from "react"; import { View, ScrollView, ActivityIndicator, Pressable } from "react-native"; import { ScreenWrapper } from "@/components/ScreenWrapper"; import { StandardHeader } from "@/components/StandardHeader"; import { Text } from "@/components/ui/text"; import { Card, CardContent } from "@/components/ui/card"; import { faqApi } from "@/lib/api"; import { ChevronDown } from "@/lib/icons"; import { useColorScheme } from "nativewind"; import { cn } from "@/lib/utils"; interface FAQItem { id: string; question: string; answer: string; category?: string; } export default function FAQScreen() { const [faqs, setFaqs] = useState([]); const [loading, setLoading] = useState(true); const [expanded, setExpanded] = useState(null); const { colorScheme } = useColorScheme(); const fetchFaqs = async () => { try { const response = await faqApi.getAll(); const faqData = (response as any)?.data || response; setFaqs(Array.isArray(faqData) ? faqData : []); } catch (error) { console.error("[FAQ] Fetch failed:", error); setFaqs([]); } finally { setLoading(false); } }; useEffect(() => { fetchFaqs(); }, []); return ( {loading ? ( ) : ( Got Questions? Find quick answers to common inquiries. {faqs.length === 0 ? ( No FAQs available yet. ) : ( faqs.map((item) => ( setExpanded(expanded === item.id ? null : item.id) } className={cn( "flex-row items-center justify-between p-3", expanded === item.id && "bg-muted/10", )} > {item.question} {expanded === item.id && ( {item.answer} {item.category && ( {item.category} )} )} )) )} )} ); }