From 967cc95476efbf85c38d07308e92de721eedc5e1 Mon Sep 17 00:00:00 2001 From: soufiane Date: Mon, 8 Dec 2025 14:14:58 +0100 Subject: [PATCH] feat(faq): redesign FAQ page with modern UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - New hero section with dark green gradient and decorative elements - Glassmorphism search bar integrated in hero - Sticky category filters with icons and "Tout" button - Redesigned FAQ cards with category icons and animations - Improved CTA section with blur effects - Better visual hierarchy and user experience 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- app/faq/FAQContent.tsx | 225 ++++++++++++++++++++++++++--------------- 1 file changed, 144 insertions(+), 81 deletions(-) diff --git a/app/faq/FAQContent.tsx b/app/faq/FAQContent.tsx index 2ea794d..de2eb7b 100644 --- a/app/faq/FAQContent.tsx +++ b/app/faq/FAQContent.tsx @@ -7,6 +7,7 @@ interface FAQ { category: string; question: string; answer: string; + icon: string; } const faqData: FAQ[] = [ @@ -14,63 +15,73 @@ const faqData: FAQ[] = [ category: "Participation", question: "Comment participer au jeu-concours ?", answer: "Pour participer, vous devez effectuer un achat de minimum 49€ dans une boutique Thé Tip Top participante, récupérer votre ticket de caisse avec le code unique, créer un compte sur notre site www.thetiptop.fr, vous connecter et saisir votre code pour découvrir instantanément votre gain.", + icon: "M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z", }, { category: "Codes", question: "Où trouver mon code de participation ?", answer: "Votre code de participation se trouve sur votre ticket de caisse après chaque achat de minimum 49€ en magasin Thé Tip Top. Il est clairement indiqué et composé de 10 caractères alphanumériques.", + icon: "M7 20l4-16m2 16l4-16M6 9h14M4 15h14", }, { category: "Codes", question: "Mon code ne fonctionne pas, que faire ?", answer: "Vérifiez d'abord que vous avez bien saisi le code sans erreur (attention aux caractères similaires comme 0/O ou 1/I). Assurez-vous que le code n'a pas déjà été utilisé. Si le problème persiste, contactez notre service client via la page Contact avec une photo de votre ticket.", + icon: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z", }, { category: "Compte", question: "Puis-je créer un compte avec mes réseaux sociaux ?", answer: "Oui, vous pouvez créer un compte et vous connecter rapidement en utilisant votre compte Google ou Facebook. Cela permet une inscription plus rapide et sécurisée.", + icon: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z", }, { category: "Délais", question: "Jusqu'à quand puis-je saisir mon code ?", answer: "Vous pouvez saisir votre code pendant toute la durée du jeu-concours, soit du 1er janvier 2025 au 31 janvier 2025 à 23h59. Après cette date, les codes ne seront plus acceptés.", + icon: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z", }, { category: "Retrait", question: "Comment récupérer mon lot ?", answer: "Pour les petits lots (infuseurs, boîtes de thé), vous pouvez les récupérer directement en magasin en présentant votre confirmation de gain. Pour les coffrets, vous avez le choix entre le retrait en boutique ou la livraison à domicile offerte. Pour le grand prix, une livraison mensuelle sera organisée à l'adresse de votre choix.", + icon: "M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4", }, { category: "Retrait", question: "Dans quelles boutiques puis-je récupérer mon lot ?", answer: "Vous pouvez récupérer votre lot dans n'importe quelle boutique Thé Tip Top en France métropolitaine. Présentez simplement votre confirmation de gain (email ou capture d'écran) et une pièce d'identité.", + icon: "M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z", }, { category: "Tirage final", question: "Comment fonctionne le tirage final pour le grand prix ?", answer: "À l'issue de la période de participation, un tirage au sort sera organisé le 15 février 2025 sous contrôle d'huissier de justice (Maître Dupont, Office Notarial de Paris) pour désigner le grand gagnant du prix principal : 1 an de thé offert d'une valeur de 360€. Tous les participants ayant validé au moins un code sont automatiquement inscrits au tirage.", + icon: "M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z", }, { category: "Données", question: "Mes données personnelles sont-elles protégées ?", answer: "Absolument. Nous prenons la protection de vos données très au sérieux conformément au RGPD. Toutes les informations sont cryptées et stockées de manière sécurisée. Vous disposez d'un droit d'accès, de rectification et d'effacement de vos données. Consultez notre Politique de Confidentialité pour plus de détails.", + icon: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z", }, { category: "Technique", question: "Le site ne fonctionne pas, que faire ?", answer: "Essayez de vider le cache de votre navigateur et de rafraîchir la page (Ctrl+F5 ou Cmd+Shift+R). Assurez-vous d'utiliser un navigateur récent (Chrome, Firefox, Safari, Edge). Vérifiez que JavaScript et les cookies sont activés. Si le problème persiste, contactez notre support technique à support@thetiptop.com.", + icon: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z", }, ]; const categories = [ - { name: "Participation", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Codes", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Compte", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Délais", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Retrait", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Tirage final", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Données", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, - { name: "Technique", color: "bg-gradient-to-r from-[#d4a574]/20 to-[#c4956a]/20 text-[#c4956a]" }, + { name: "Participation", icon: "M15 5v2m0 4v2m0 4v2M5 5a2 2 0 00-2 2v3a2 2 0 110 4v3a2 2 0 002 2h14a2 2 0 002-2v-3a2 2 0 110-4V7a2 2 0 00-2-2H5z" }, + { name: "Codes", icon: "M7 20l4-16m2 16l4-16M6 9h14M4 15h14" }, + { name: "Compte", icon: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }, + { name: "Délais", icon: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" }, + { name: "Retrait", icon: "M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4" }, + { name: "Tirage final", icon: "M5 3v4M3 5h4M6 17v4m-2-2h4m5-16l2.286 6.857L21 12l-5.714 2.143L13 21l-2.286-6.857L5 12l5.714-2.143L13 3z" }, + { name: "Données", icon: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" }, + { name: "Technique", icon: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" }, ]; export default function FAQContent() { @@ -90,32 +101,34 @@ export default function FAQContent() { return matchesSearch && matchesCategory; }); - const getCategoryColor = (category: string) => { - const cat = categories.find(c => c.name === category); - return cat?.color || "bg-gray-100 text-gray-700"; + const getCategoryIcon = (categoryName: string) => { + const cat = categories.find(c => c.name === categoryName); + return cat?.icon || ""; }; return ( -
+
{/* Hero Section */} -
-
-
-

+
+
+
+
+
+
+
+
+ + Centre d'aide + +

Questions fréquentes

-

+

Trouvez rapidement les réponses à vos questions sur notre jeu-concours Thé Tip Top.

-
-
-
- {/* Search Bar */} -
-
-
-
+ {/* Search Bar */} +
setSearchQuery(e.target.value)} - className="w-full px-4 py-3 pl-12 border-2 border-[#e5e4dc] rounded-lg focus:outline-none focus:ring-2 focus:ring-[#d4a574] focus:border-[#d4a574] bg-white shadow-sm" + className="w-full px-6 py-4 pl-14 bg-white/10 backdrop-blur-sm border border-white/20 rounded-2xl text-white placeholder-white/50 focus:outline-none focus:ring-2 focus:ring-[#d4a574] focus:border-transparent transition-all" /> {/* Category Filters */} -
+
-
-
+
+
+ {categories.map((category) => ( ))} @@ -170,44 +199,62 @@ export default function FAQContent() {
{/* FAQ Questions */} -
+
-
+
{filteredFAQs.length === 0 ? ( -
- Aucune question ne correspond Ă  votre recherche. +
+
+ + + +
+

Aucun résultat

+

Aucune question ne correspond Ă  votre recherche.

) : ( filteredFAQs.map((faq, index) => ( -
+
- {openQuestion === index && ( -
- {faq.answer} +
+
+

+ {faq.answer} +

- )} +
)) )} @@ -216,29 +263,45 @@ export default function FAQContent() {
{/* CTA Section */} -
+
-
-

- Vous ne trouvez pas votre réponse ? -

-

- Notre équipe est là pour vous aider ! Contactez-nous et nous vous répondrons dans les plus brefs délais. -

-
- - support@thetiptop.com - - - Formulaire de contact - +
+
+
+ +
+
+ + + +
+

+ Vous ne trouvez pas votre réponse ? +

+

+ Notre équipe est là pour vous aider ! Contactez-nous et nous vous répondrons dans les plus brefs délais. +

+
+ + + + + support@thetiptop.com + + + + + + Formulaire de contact + +