"use client"; import { useState } from "react"; import MagicReveal from "@/components/ui/MagicReveal"; import Button from "@/components/ui/Button"; interface MaconClientProps { type?: "slider" | "form" | "faq" | "floating"; avantLabel?: string; apresLabel?: string; avantImage?: string; apresImage?: string; faqs?: { q: string; a: string }[]; } export default function MaconClient({ type, avantLabel, apresLabel, avantImage, apresImage, faqs, }: MaconClientProps) { if (type === "slider") { return ( ); } if (type === "form") { return ; } if (type === "faq") { return ; } if (type === "floating") { return ; } return null; } /* ============================================================ FAQ ACCORDION ============================================================ */ function FaqAccordion({ faqs }: { faqs: { q: string; a: string }[] }) { const [openIdx, setOpenIdx] = useState(null); return ( {faqs.map((faq, i) => { const isOpen = openIdx === i; return ( setOpenIdx(isOpen ? null : i)} className="w-full flex items-center justify-between p-5 text-left cursor-pointer" > {faq.q} {isOpen && ( {faq.a} )} ); })} ); } /* ============================================================ SMART DEVIS FORM ============================================================ */ function DevisForm() { const [step, setStep] = useState<"type" | "details">("type"); const [projectType, setProjectType] = useState(""); if (step === "details") { return ( 2/2 Vos coordonnées Projet : {projectType} Votre nom Téléphone Ville Décrivez votre projet (optionnel) Envoyer ma demande de devis setStep("type")} className="w-full text-text-muted hover:text-text text-sm underline cursor-pointer" > ← Retour ); } return ( 1/2 Quel type de projet ? {[ { label: "Projet Extension", desc: "Agrandissement, garage, sur\u00e9l\u00e9vation", icon: ( ), }, { label: "R\u00e9novation", desc: "Fa\u00e7ade, rejointoiement, murs", icon: ( ), }, { label: "Petits Travaux", desc: "Terrasse, muret, dalle", icon: ( ), }, ].map((item) => ( { setProjectType(item.label); setStep("details"); }} className="p-5 rounded-xl border-2 border-gray-200 bg-[#f8f6f3] hover:border-orange hover:shadow-md text-center transition-all cursor-pointer group" > {item.icon} {item.label} {item.desc} ))} ); } /* ============================================================ FLOATING MOBILE CTA ============================================================ */ function FloatingCTA() { return ( Appeler maintenant ); }
{faq.a}
Projet : {projectType}
{item.label}
{item.desc}