/** * Oveyo PWA V7.8.1 — Page FAQ (fix bouton WhatsApp accessible) * ================================================================ * Bug v7.8 : le bouton WhatsApp en bas était caché derrière la TabBar fixée. * * Fix : * - paddingBottom suffisante (110px) pour que le contenu scrollable réserve * l'espace sous la TabBar (96px) + safe-area iOS * - height: 100dvh pour iOS Safari (dynamic viewport) * - WebkitOverflowScrolling: 'touch' pour scroll fluide iOS * - overscrollBehavior: 'contain' pour empêcher le bounce */ const FAQPage = ({ onClose, onOpenSheet }) => { const { ArrowLeft, Search, ChevronDown, ChevronUp, ExternalLink, MessageCircle } = window.LucideReact || {}; const [categories, setCategories] = React.useState([]); const [loading, setLoading] = React.useState(true); const [error, setError] = React.useState(null); const [search, setSearch] = React.useState(''); const [expanded, setExpanded] = React.useState(new Set()); React.useEffect(() => { const load = async () => { try { const r = await fetch('/api/pwa/faq'); if (!r.ok) { setError('Impossible de charger la FAQ'); setLoading(false); return; } const data = await r.json(); setCategories(data.categories || []); } catch (e) { setError('Erreur de connexion'); } finally { setLoading(false); } }; load(); }, []); const toggleEntry = (id) => { const next = new Set(expanded); if (next.has(id)) next.delete(id); else next.add(id); setExpanded(next); }; const normalize = (s) => (s || '').toLowerCase() .normalize('NFD').replace(/[\u0300-\u036f]/g, ''); const filtered = React.useMemo(() => { if (!search.trim()) return categories; const q = normalize(search); return categories .map((cat) => ({ ...cat, entries: cat.entries.filter((e) => normalize(e.question).includes(q) || normalize(e.answer).includes(q) ), })) .filter((cat) => cat.entries.length > 0); }, [categories, search]); const totalFiltered = filtered.reduce((sum, c) => sum + c.entries.length, 0); const handleAction = (entry) => { if (entry.action_url) { if (entry.action_url.startsWith('http')) { window.open(entry.action_url, '_blank'); } else { window.location.href = entry.action_url; } } }; return (
Réponses aux questions courantes
{error}
Aucun résultat pour "{search}"
Essaie d'autres mots ou contacte-nous via le bot WhatsApp.