+
+
+
+
💡
+
+
Avant de nous contacter
+
+ Consultez notre FAQ, vous y trouverez peut-être la réponse à votre question !
+
+
- {isSubmitting ? "Envoi en cours..." : "Envoyer le message"}
-
-
-
-
-
-
-
- {/* Contact Info */}
-
-
-
- Nos coordonnées
-
-
- {/* Adresse */}
-
-
📍
-
-
Adresse
-
- 123 Avenue des Thés
- 06000 Nice, France
-
+ Voir la FAQ
+
-
- {/* Téléphone */}
-
-
- {/* Email */}
-
-
- {/* Horaires */}
-
-
🕐
-
-
Horaires d'ouverture
-
- Lundi - Vendredi : 9h - 19h
- Samedi : 9h - 18h
- Dimanche : 10h - 17h
-
-
-
-
-
-
- {/* Localisation */}
-
-
- Localisation
-
-
-
-
-
-
-
-
-
-
- {/* Boutiques Section */}
-
-
-
- Nos boutiques
-
-
- Retrouvez-nous dans nos points de vente niçois
-
-
-
- {/* Boutique Centre-Ville */}
-
-
- 🏪
- Boutique Centre-Ville
-
-
-
-
15 rue de la Paix
-
06000 Nice
-
-
-
-
-
- {/* Boutique Vieux-Nice */}
-
-
- 🏪
- Boutique Vieux-Nice
-
-
-
-
28 rue des Rosiers
-
06300 Nice
-
-
-
-
-
- {/* Boutique Promenade */}
-
-
- 🏪
- Boutique Promenade
-
-
-
-
42 Promenade des Anglais
-
06000 Nice
-
-
-
-
+
diff --git a/app/faq/FAQContent.tsx b/app/faq/FAQContent.tsx
index 0665887..a1d95de 100644
--- a/app/faq/FAQContent.tsx
+++ b/app/faq/FAQContent.tsx
@@ -2,284 +2,245 @@
import { useState } from "react";
import Link from "next/link";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/Card";
-import Button from "@/components/Button";
-import { ROUTES } from "@/utils/constants";
interface FAQ {
+ category: string;
question: string;
answer: string;
}
-interface FAQCategory {
- category: string;
- icon: string;
- faqs: FAQ[];
-}
-
-const faqData: FAQCategory[] = [
+const faqData: FAQ[] = [
{
- category: "Participation au Jeu",
- icon: "🎮",
- faqs: [
- {
- question: "Comment participer au jeu-concours Thé Tip Top ?",
- answer: "Pour participer, vous devez d'abord créer un compte sur notre plateforme. Ensuite, connectez-vous et saisissez le code unique présent sur votre ticket de caisse. Chaque achat en magasin vous donne droit à un code pour tenter votre chance !",
- },
- {
- question: "Qui peut participer au jeu-concours ?",
- answer: "Le jeu-concours est ouvert à toute personne majeure résidant en France métropolitaine. Les employés de Thé Tip Top et leurs familles directes ne sont pas éligibles.",
- },
- {
- question: "Combien de fois puis-je participer ?",
- answer: "Vous pouvez participer autant de fois que vous le souhaitez ! Chaque achat en magasin vous donne un nouveau code à jouer. Il n'y a pas de limite au nombre de participations.",
- },
- {
- question: "Où trouver mon code de participation ?",
- answer: "Votre code de participation se trouve sur votre ticket de caisse après chaque achat en magasin Thé Tip Top. Il est clairement indiqué dans une zone dédiée du ticket.",
- },
- {
- 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). Si le problème persiste, contactez notre service client via la page Contact avec une photo de votre ticket.",
- },
- ],
+ 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.",
},
{
- category: "Lots et Gains",
- icon: "🎁",
- faqs: [
- {
- question: "Quels sont les lots à gagner ?",
- answer: "Vous pouvez gagner une variété de lots : des infuseurs à thé, des boîtes de thé signature (100g ou 200g), des coffrets découverte, et même un an de thé d'une valeur de 360€ ! Consultez notre page Lots pour voir tous les prix disponibles.",
- },
- {
- question: "Comment savoir si j'ai gagné ?",
- answer: "Vous saurez immédiatement si vous avez gagné après avoir saisi votre code. Un message s'affichera à l'écran vous indiquant votre lot. Vous recevrez également une confirmation par email avec les détails de votre gain.",
- },
- {
- 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 lots plus importants, nous vous contacterons pour organiser la livraison.",
- },
- {
- question: "Combien de temps ai-je pour récupérer mon lot ?",
- answer: "Vous avez 30 jours à compter de la date de gain pour récupérer votre lot. Passé ce délai, le lot ne pourra plus être réclamé.",
- },
- {
- question: "Puis-je échanger mon lot contre un autre ?",
- answer: "Les lots ne sont pas échangeables ni remboursables. Cependant, pour les coffrets et boîtes de thé, vous pourrez choisir parmi plusieurs variétés lors de la récupération.",
- },
- {
- question: "Y a-t-il des frais pour recevoir mon lot ?",
- answer: "Non, tous les lots sont entièrement gratuits, sans frais de livraison ni frais cachés.",
- },
- ],
+ 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.",
},
{
- category: "Compte et Profil",
- icon: "👤",
- faqs: [
- {
- question: "Comment créer un compte ?",
- answer: "Cliquez sur le bouton 'S'inscrire' en haut de la page, remplissez le formulaire avec vos informations (nom, prénom, email, mot de passe) et validez. Vous recevrez un email de confirmation pour activer votre compte.",
- },
- {
- question: "J'ai oublié mon mot de passe, que faire ?",
- answer: "Sur la page de connexion, cliquez sur 'Mot de passe oublié'. Saisissez votre adresse email et vous recevrez un lien pour réinitialiser votre mot de passe.",
- },
- {
- question: "Comment modifier mes informations personnelles ?",
- answer: "Connectez-vous à votre compte et accédez à la page 'Mon Profil'. Vous pourrez y modifier vos informations personnelles, votre adresse email et votre mot de passe.",
- },
- {
- question: "Puis-je supprimer mon compte ?",
- answer: "Oui, vous pouvez demander la suppression de votre compte en contactant notre service client via la page Contact. Notez que cette action est irréversible et que vous perdrez l'accès à vos lots non récupérés.",
- },
- {
- question: "Mes données personnelles sont-elles sécurisées ?",
- answer: "Absolument. Nous prenons la protection de vos données très au sérieux. Toutes les informations sont cryptées et stockées de manière sécurisée. Consultez notre Politique de Confidentialité pour plus de détails.",
- },
- ],
+ 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.",
},
{
- category: "Problèmes Techniques",
- icon: "🔧",
- faqs: [
- {
- question: "Le site ne s'affiche pas correctement, que faire ?",
- answer: "Essayez de vider le cache de votre navigateur et de rafraîchir la page. Assurez-vous également d'utiliser un navigateur récent (Chrome, Firefox, Safari, Edge). Si le problème persiste, contactez-nous.",
- },
- {
- question: "Je n'arrive pas à me connecter",
- answer: "Vérifiez que vous utilisez la bonne adresse email et le bon mot de passe. Si vous avez oublié votre mot de passe, utilisez la fonction 'Mot de passe oublié'. Assurez-vous également que les cookies sont activés dans votre navigateur.",
- },
- {
- question: "Je n'ai pas reçu l'email de confirmation",
- answer: "Vérifiez votre dossier spam ou courrier indésirable. Si vous ne trouvez toujours pas l'email après quelques minutes, vous pouvez demander un nouvel envoi depuis la page de connexion.",
- },
- {
- question: "Le site est-il compatible avec les mobiles ?",
- answer: "Oui, notre site est entièrement responsive et optimisé pour tous les appareils (smartphones, tablettes, ordinateurs). Vous pouvez participer depuis n'importe quel appareil.",
- },
- {
- question: "Puis-je utiliser le site depuis l'étranger ?",
- answer: "Vous pouvez accéder au site depuis l'étranger, mais seules les personnes résidant en France métropolitaine peuvent participer au jeu-concours et récupérer des lots.",
- },
- ],
+ 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.",
},
{
- category: "Informations Générales",
- icon: "ℹ️",
- faqs: [
- {
- question: "Quelle est la durée du jeu-concours ?",
- answer: "Le jeu-concours se déroule du [date de début] au [date de fin]. Consultez notre page d'accueil pour les dates exactes et le temps restant.",
- },
- {
- question: "Comment contacter le service client ?",
- answer: "Vous pouvez nous contacter via notre page Contact, par email à contact@thetiptop.fr, ou par téléphone au [numéro]. Notre équipe est disponible du lundi au vendredi de 9h à 18h.",
- },
- {
- question: "Où se trouvent les magasins Thé Tip Top ?",
- answer: "Nous avons des magasins dans toute la France. Consultez notre page À Propos ou contactez-nous pour trouver le magasin le plus proche de chez vous.",
- },
- {
- question: "Puis-je offrir mon lot à quelqu'un d'autre ?",
- answer: "Oui, les lots sont cessibles. Vous pouvez offrir votre lot à un tiers, mais la personne devra présenter votre confirmation de gain pour le récupérer.",
- },
- {
- question: "Le jeu-concours est-il gratuit ?",
- answer: "Oui, la participation au jeu-concours est entièrement gratuite. Vous devez simplement effectuer un achat en magasin pour obtenir un code de participation.",
- },
- {
- question: "Où puis-je consulter le règlement du jeu ?",
- answer: "Le règlement complet du jeu-concours est disponible sur notre page Règlement du Jeu. Nous vous recommandons de le lire attentivement avant de participer.",
- },
- ],
+ 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.",
+ },
+ {
+ 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.",
+ },
+ {
+ 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é.",
+ },
+ {
+ 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.",
+ },
+ {
+ 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.",
+ },
+ {
+ 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.",
},
];
-function FAQItem({ faq, isOpen, onClick }: { faq: FAQ; isOpen: boolean; onClick: () => void }) {
- return (
-
-
- {faq.question}
-
- +
-
-
- {isOpen && (
-
- {faq.answer}
-
- )}
-
- );
-}
+const categories = [
+ { name: "Participation", color: "bg-green-100 text-green-700" },
+ { name: "Codes", color: "bg-blue-100 text-blue-700" },
+ { name: "Compte", color: "bg-purple-100 text-purple-700" },
+ { name: "Délais", color: "bg-orange-100 text-orange-700" },
+ { name: "Retrait", color: "bg-teal-100 text-teal-700" },
+ { name: "Tirage final", color: "bg-yellow-100 text-yellow-700" },
+ { name: "Données", color: "bg-pink-100 text-pink-700" },
+ { name: "Technique", color: "bg-gray-100 text-gray-700" },
+];
export default function FAQContent() {
- const [openItems, setOpenItems] = useState<{ [key: string]: boolean }>({});
+ const [searchQuery, setSearchQuery] = useState("");
+ const [selectedCategory, setSelectedCategory] = useState
(null);
+ const [openQuestion, setOpenQuestion] = useState(null);
- const toggleItem = (categoryIndex: number, faqIndex: number) => {
- const key = `${categoryIndex}-${faqIndex}`;
- setOpenItems((prev) => ({
- ...prev,
- [key]: !prev[key],
- }));
+ const toggleQuestion = (index: number) => {
+ setOpenQuestion(openQuestion === index ? null : index);
+ };
+
+ const filteredFAQs = faqData.filter((faq) => {
+ const matchesSearch =
+ faq.question.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ faq.answer.toLowerCase().includes(searchQuery.toLowerCase());
+ const matchesCategory = !selectedCategory || faq.category === selectedCategory;
+ return matchesSearch && matchesCategory;
+ });
+
+ const getCategoryColor = (category: string) => {
+ const cat = categories.find(c => c.name === category);
+ return cat?.color || "bg-gray-100 text-gray-700";
};
return (
-
-
- {/* Hero Section */}
-
-
- Questions Fréquentes
-
-
- Trouvez rapidement les réponses à vos questions sur le jeu-concours Thé Tip Top.
- Si vous ne trouvez pas la réponse que vous cherchez, n'hésitez pas à nous contacter.
-
-
-
- {/* Search Hint */}
-
-
- 💡 Astuce : Utilisez Ctrl+F (Cmd+F sur Mac) pour rechercher un mot-clé dans cette page
-
-
-
- {/* FAQ Categories */}
-
- {faqData.map((category, categoryIndex) => (
-
-
-
- {category.icon}
- {category.category}
-
-
-
- {category.faqs.map((faq, faqIndex) => (
- toggleItem(categoryIndex, faqIndex)}
- />
- ))}
-
-
- ))}
-
-
- {/* CTA Section */}
-
-
- Vous n'avez pas trouvé votre réponse ?
-
-
- Notre équipe est là pour vous aider ! Contactez-nous et nous vous répondrons dans les plus brefs délais.
-
-
-
-
- Nous Contacter
-
-
-
-
- Retour à l'Accueil
-
-
+
+ {/* Hero Section */}
+
+
+
+
+ Questions fréquentes
+
+
+ Trouvez rapidement les réponses à vos questions sur notre jeu-concours Thé Tip Top.
+
+
- {/* Quick Links */}
-
-
Pages utiles :
-
-
- Règlement du Jeu
-
-
•
-
- Lots à Gagner
-
-
•
-
- À Propos
-
-
•
-
- Confidentialité
-
+ {/* Search Bar */}
+
+
+
+
+
setSearchQuery(e.target.value)}
+ className="w-full px-4 py-3 pl-12 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-[#1a4d2e] focus:border-transparent"
+ />
+
+
+
+
-
+
+
+ {/* Category Filters */}
+
+
+
+
+ {categories.map((category) => (
+ setSelectedCategory(
+ selectedCategory === category.name ? null : category.name
+ )}
+ className={`px-4 py-2 rounded-full text-sm font-medium transition-all ${
+ selectedCategory === category.name
+ ? category.color + ' ring-2 ring-offset-2 ring-green-500'
+ : category.color + ' hover:opacity-80'
+ }`}
+ >
+ {category.name}
+
+ ))}
+
+
+
+
+
+ {/* FAQ Questions */}
+
+
+
+ {filteredFAQs.length === 0 ? (
+
+ Aucune question ne correspond à votre recherche.
+
+ ) : (
+ filteredFAQs.map((faq, index) => (
+
+
toggleQuestion(index)}
+ className="w-full flex items-start justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+
+
+ {faq.category}
+
+
+
{faq.question}
+
+
+
+
+
+ {openQuestion === index && (
+
+ {faq.answer}
+
+ )}
+
+ ))
+ )}
+
+
+
+
+ {/* 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.
+
+
+
+
+
+
);
}
diff --git a/app/forgot-password/page.tsx b/app/forgot-password/page.tsx
index ba3744a..5c1026a 100644
--- a/app/forgot-password/page.tsx
+++ b/app/forgot-password/page.tsx
@@ -1,113 +1,137 @@
"use client";
import { useState } from "react";
-import { useForm } from "react-hook-form";
-import { zodResolver } from "@hookform/resolvers/zod";
-import { z } from "zod";
-import { Input } from "@/components/ui/Input";
-import Button from "@/components/Button";
-import { Card } from "@/components/ui/Card";
import Link from "next/link";
import { ROUTES } from "@/utils/constants";
-import toast from "react-hot-toast";
-
-const forgotPasswordSchema = z.object({
- email: z.string().email("Email invalide"),
-});
-
-type ForgotPasswordFormData = z.infer
;
export default function ForgotPasswordPage() {
+ const [email, setEmail] = useState("");
const [isSubmitting, setIsSubmitting] = useState(false);
- const [emailSent, setEmailSent] = useState(false);
+ const [isSuccess, setIsSuccess] = useState(false);
- const {
- register,
- handleSubmit,
- formState: { errors },
- } = useForm({
- resolver: zodResolver(forgotPasswordSchema),
- });
-
- const onSubmit = async (data: ForgotPasswordFormData) => {
+ const handleSubmit = async (e: React.FormEvent) => {
+ e.preventDefault();
setIsSubmitting(true);
- try {
- // TODO: Implement password reset API call
- console.log("Password reset requested for:", data.email);
- // Simulate API call
- await new Promise(resolve => setTimeout(resolve, 1000));
+ // Simulation d'envoi
+ await new Promise(resolve => setTimeout(resolve, 1500));
- setEmailSent(true);
- toast.success("Email de réinitialisation envoyé !");
- } catch (error) {
- console.error("Password reset error:", error);
- toast.error("Erreur lors de l'envoi de l'email");
- } finally {
- setIsSubmitting(false);
- }
+ console.log('Password reset email sent to:', email);
+ setIsSuccess(true);
+ setIsSubmitting(false);
};
+ if (isSuccess) {
+ return (
+
+
+
+ {/* Title */}
+
+
Email envoyé !
+
+ Vérifiez votre boîte de réception
+
+
+
+ {/* Success Card */}
+
+
+
+
+
+ Lien de réinitialisation envoyé
+
+
+
+ Nous avons envoyé un lien de réinitialisation à {email}
+
+
+
+
+ 💡 Conseil : Si vous ne recevez pas l'email dans quelques minutes, vérifiez votre dossier spam.
+
+
+
+
+ Retour à la connexion
+
+
+
+
+
+ );
+ }
+
return (
-
-
+
+
+
+ {/* Title */}
-
- Mot de passe oublié
-
+
Mot de passe oublié
Entrez votre email pour recevoir un lien de réinitialisation
- {!emailSent ? (
-
);
}
diff --git a/app/gagnants/page.tsx b/app/gagnants/page.tsx
new file mode 100644
index 0000000..8b7d19c
--- /dev/null
+++ b/app/gagnants/page.tsx
@@ -0,0 +1,337 @@
+'use client';
+
+import type { Metadata } from "next";
+import Link from "next/link";
+import { useState } from "react";
+
+interface Winner {
+ date: string;
+ name: string;
+ prize: string;
+ prizeType: 'coffret-prestige' | 'boite-signature' | 'infuseur' | 'coffret-decouverte' | 'boite-detox';
+ boutique: string;
+ city: string;
+ testimonial?: {
+ initials: string;
+ text: string;
+ stars: number;
+ };
+}
+
+const winners: Winner[] = [
+ {
+ date: "15 janvier 2024",
+ name: "Marie L.",
+ prize: "Coffret prestige 69€",
+ prizeType: "coffret-prestige",
+ boutique: "Boutique Rivoli",
+ city: "Paris 1er"
+ },
+ {
+ date: "15 janvier 2024",
+ name: "Pierre L.",
+ prize: "Boîte 100g thé signature",
+ prizeType: "boite-signature",
+ boutique: "Boutique République",
+ city: "Lyon"
+ },
+ {
+ date: "14 janvier 2024",
+ name: "Sophie L.",
+ prize: "Infuseur à thé premium",
+ prizeType: "infuseur",
+ boutique: "Boutique Canebière",
+ city: "Marseille"
+ },
+ {
+ date: "14 janvier 2024",
+ name: "Thomas L.",
+ prize: "Coffret découverte 39€",
+ prizeType: "coffret-decouverte",
+ boutique: "Boutique Saint-Germain",
+ city: "Paris 6e"
+ },
+ {
+ date: "13 janvier 2024",
+ name: "Julie L.",
+ prize: "Boîte 100g thé détox",
+ prizeType: "boite-detox",
+ boutique: "Boutique Capitole",
+ city: "Toulouse"
+ },
+ {
+ date: "13 janvier 2024",
+ name: "Antoine L.",
+ prize: "Infuseur à thé premium",
+ prizeType: "infuseur",
+ boutique: "Boutique Promenade",
+ city: "Nice"
+ },
+ {
+ date: "12 janvier 2024",
+ name: "Camille L.",
+ prize: "Boîte 100g thé signature",
+ prizeType: "boite-signature",
+ boutique: "Boutique Sainte-Catherine",
+ city: "Bordeaux"
+ },
+ {
+ date: "12 janvier 2024",
+ name: "Maxime L.",
+ prize: "Infuseur à thé premium",
+ prizeType: "infuseur",
+ boutique: "Boutique Kléber",
+ city: "Strasbourg"
+ },
+ {
+ date: "11 janvier 2024",
+ name: "Emma L.",
+ prize: "Coffret prestige 69€",
+ prizeType: "coffret-prestige",
+ boutique: "Boutique Vieux-Lille",
+ city: "Lille"
+ },
+ {
+ date: "11 janvier 2024",
+ name: "Lucas L.",
+ prize: "Boîte 100g thé détox",
+ prizeType: "boite-detox",
+ boutique: "Boutique Commerce",
+ city: "Nantes"
+ },
+];
+
+const testimonials = [
+ {
+ initials: "ML",
+ name: "Marie L.",
+ city: "Paris 9e",
+ text: "J'ai gagné le coffret prestige ! Les thés sont délicieux, merci Thé Tip Top pour cette belle surprise !",
+ stars: 5
+ },
+ {
+ initials: "PD",
+ name: "Pierre D.",
+ city: "Lyon",
+ text: "Le thé signature est exceptionnel ! Je recommande vivement cette boutique, et le jeu est super !",
+ stars: 5
+ },
+ {
+ initials: "SB",
+ name: "Sophie B.",
+ city: "Marseille",
+ text: "Mon infuseur est magnifique ! Parfait pour mes thés du matin. Merci pour ce jeu génial !",
+ stars: 5
+ }
+];
+
+const getPrizeIcon = (type: string) => {
+ switch (type) {
+ case 'coffret-prestige':
+ return '🎁';
+ case 'boite-signature':
+ return '🌿';
+ case 'infuseur':
+ return '🍵';
+ case 'coffret-decouverte':
+ return '🎁';
+ case 'boite-detox':
+ return '📦';
+ default:
+ return '🎁';
+ }
+};
+
+const getPrizeColor = (type: string) => {
+ switch (type) {
+ case 'coffret-prestige':
+ return 'bg-pink-100 text-pink-700';
+ case 'boite-signature':
+ return 'bg-yellow-100 text-yellow-700';
+ case 'infuseur':
+ return 'bg-blue-100 text-blue-700';
+ case 'coffret-decouverte':
+ return 'bg-orange-100 text-orange-700';
+ case 'boite-detox':
+ return 'bg-green-100 text-green-700';
+ default:
+ return 'bg-gray-100 text-gray-700';
+ }
+};
+
+export default function GagnantsPage() {
+ const [periodFilter, setPeriodFilter] = useState("Toutes les dates");
+ const [typeFilter, setTypeFilter] = useState("Tous les lots");
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+ Nos gagnants
+
+
+ Découvrez les heureux gagnants de notre jeu-concours Thé Tip Top.
+ Félicitations à tous les participants !
+
+
+
+
+
+ {/* Stats Section */}
+
+
+
+
+ {/* Stat 1 */}
+
+
10
+
Gagnants au total
+
Depuis le début du jeu
+
+
+ {/* Stat 2 */}
+
+
5
+
Jours d'activité
+
Jours avec des gagnants
+
+
+ {/* Stat 3 */}
+
+
10
+
Villes représentées
+
Dans toute la France
+
+
+
+
+
+
+ {/* Winners List */}
+
+
+
+
+
+
+ 🏆
+
Liste des gagnants ({winners.length})
+
+
+
+ {/* Table Header */}
+
+
DATE
+
GAGNANT
+
LOT REMPORTÉ
+
BOUTIQUE
+
+
+ {/* Table Rows */}
+
+ {winners.map((winner, index) => (
+
+
+ {/* Date */}
+
+ 📅
+ {winner.date}
+
+
+ {/* Name */}
+
+ 👤
+ {winner.name}
+
+
+ {/* Prize */}
+
+
+ {getPrizeIcon(winner.prizeType)}
+ {winner.prize}
+
+
+
+ {/* Boutique */}
+
+
🏪
+
+
{winner.boutique}
+
{winner.city}
+
+
+
+
+ ))}
+
+
+
+
+
+
+ {/* Testimonials Section */}
+
+
+
+
Témoignages de nos gagnants
+
+ {testimonials.map((testimonial, index) => (
+
+
+
+ {testimonial.initials}
+
+
+
{testimonial.name}
+
{testimonial.city}
+
+
+
"{testimonial.text}"
+
+ {[...Array(testimonial.stars)].map((_, i) => (
+ ⭐
+ ))}
+
+
+ ))}
+
+
+
+
+
+ {/* CTA Section */}
+
+
+
+
+
+ Vous aussi, rejoignez nos gagnants !
+
+
+ Avec 100% de gagnants garantis, c'est votre tour de remporter un magnifique lot.
+ Rendez-vous en boutique et tentez votre chance !
+
+
+
+ ⭐ Participer maintenant
+
+
+ Voir les lots
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/layout-client.tsx b/app/layout-client.tsx
index c828e47..eaca7b4 100644
--- a/app/layout-client.tsx
+++ b/app/layout-client.tsx
@@ -10,6 +10,7 @@ export default function LayoutClient({ children }: { children: React.ReactNode }
// Ne pas afficher Header/Footer dans l'espace admin et employé
const isAdminRoute = pathname?.startsWith("/admin");
const isEmployeRoute = pathname?.startsWith("/employe");
+ const isHomePage = pathname === "/";
if (isAdminRoute || isEmployeRoute) {
return <>{children}>;
@@ -18,7 +19,7 @@ export default function LayoutClient({ children }: { children: React.ReactNode }
return (
<>
-
+
{children}
diff --git a/app/lots/page.tsx b/app/lots/page.tsx
index 10c33e9..8a4821d 100644
--- a/app/lots/page.tsx
+++ b/app/lots/page.tsx
@@ -1,257 +1,233 @@
import type { Metadata } from "next";
import Link from "next/link";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/Card";
-import Button from "@/components/Button";
-import { ROUTES } from "@/utils/constants";
export const metadata: Metadata = {
- title: "Nos Gains - Thé Tip Top",
- description: "Découvrez nos gains d'exception d'une valeur pouvant atteindre 100€",
+ title: "Lots à gagner - Thé Tip Top",
+ description: "Découvrez tous les magnifiques prix de notre jeu-concours. Avec 100% de gagnants garantis, chaque participant repart avec un lot !",
};
export default function LotsPage() {
return (
-
+
{/* Hero Section */}
-
-
- Nos gains d'exception
-
-
- Des récompenses d'une valeur pouvant atteindre 100€ vous attendent !
- Explorez notre sélection de thés premium et d'accessoires exclusifs.
-
+
+
+
+
+ Lots à gagner
+
+
+ Découvrez tous les magnifiques prix de notre jeu-concours. Avec 100% de gagnants garantis,
+ chaque participant repart avec un lot !
+
+
+
+
+
+ {/* Grand Prix Final */}
+
+
+
+
+
+
+
+
+ GRAND PRIX FINAL
+
+
+ 1 an de thé offert
+
+
+ Le grand prix du tirage final : une année complète de thé premium livré chez vous
+
+
+ Valeur : 360€ Tirage sous contrôle d'huissier
+
+
+
+
+
+
{/* Prizes Grid */}
-
-
- {/* Infuseur */}
-
-
- 🍵
- Infuseur de thé
-
-
-
- Un infuseur en acier inoxydable de qualité supérieure pour révéler
- tous les arômes de vos thés.
-
-
-
+
+
+
+
- {/* Thé détox */}
-
-
- 🌿
- Boite de 100g d'un thé détox
-
-
-
- Un mélange exclusif de plantes biologiques pour purifier votre
- organisme en douceur.
-
-
-
-
- {/* Coffret 39€ */}
-
-
- 🎁
- Coffret Découverte de 39€
-
-
-
- Une sélection de 6 thés d'exception du monde entier dans un élégant
- coffret cadeau.
-
-
-
-
- {/* Thé signature */}
-
-
- ☕
- Thé signature
-
-
-
- Un mélange de thé exclusif, soigneusement élaboré par nos maîtres artisans,
- offrant des arômes uniques et une expérience authentique à chaque tasse.
-
-
-
-
- {/* Coffret 69€ */}
-
-
- 🏆
- Coffret Découverte de 69€
-
-
-
- Un coffret premium contenant une sélection de nos meilleurs thés
- d'exception avec accessoires assortis.
-
-
-
-
- {/* CTA Card */}
-
-
- 🎮
- Participer maintenant
-
-
- Jouer
-
-
-
-
-
-
-
- {/* Comment participer Section */}
-
-
-
- Comment participer ?
-
-
- Trois étapes simples pour tenter votre chance et repartir avec nos gains d'exception.
-
-
-
- {/* Étape 1 */}
-
-
-
- 1
+ {/* Prize 1 - Infuseur */}
+
+
-
- Créez votre compte
-
-
- Ouvrez gratuitement votre espace et rejoignez notre communauté de passionnés.
-
-
-
-
- {/* Étape 2 */}
-
-
-
- 2
+
+
+ 60% des lots
+
+
Infuseur à thé premium
+
+ Un infuseur en acier inoxydable de haute qualité pour ressortir les arômes de vos thés en vrac
+
+
-
- Participez
-
-
- Prenez part au jeu-concours et validez votre participation chaque jour.
-
-
-
+
- {/* Étape 3 */}
-
-
-
- 3
+ {/* Prize 2 - Thé détox */}
+
+
-
- Remportez des gains
-
-
- Gagnez des récompenses d'exception et découvrez l'univers premium de Thé Tip Top.
-
-
-
+
+
+ 20% des lots
+
+
Boîte 100g thé détox
+
+ Mélange détox aux plantes bio : menthe, citronnelle, fenouil et gingembre
+
+
+
+
+
+ {/* Prize 3 - Thé signature */}
+
+
+
+
+ 10% des lots
+
+
Boîte 100g thé signature
+
+ Notre mélange signature exclusif : Earl Grey aux agrumes et pétales de fleurs
+
+
+
+
+
+ {/* Prize 4 - Coffret 39€ */}
+
+
+
+
+ 6% des lots
+
+
Coffret découverte 39€
+
+ Sélection de nos 3 thés premium dans un élégant coffret cadeau
+
+
+
+
+
+ {/* Prize 5 - Coffret 69€ */}
+
+
+
+
+ 4% des lots
+
+
Coffret prestige 69€
+
+ Collection premium : 5 thés d'exception avec accessoires dans un coffret luxe
+
+
+
+
+
+ {/* Prize 6 - Tirage Final */}
+
+
+
+
+ 1 an de THÉ
+
+
Tirage Final
+
+ Valeur 360€ - Livraison mensuelle pendant 12 mois
+
+
+
+
+
+
- {/* Stats & Features Section */}
-
-
- {/* Main Stat */}
-
-
🎉
-
- Déjà plus de 1000 gains remis !
+ {/* CTA Section */}
+
+
+
+
+ Prêt à découvrir votre lot ?
-
- Rejoignez les milliers de participants qui ont déjà découvert nos thés d'exception.
+
+ Achetez pour 49€ minimum de thé en boutique, récupérez votre code et
+ tentez votre chance ! Avec 100% de gagnants, vous ne pouvez que gagner.
-
-
- {/* Features Grid */}
-
- {/* Feature 1 */}
-
-
- 🏆
-
- Gagnant à tous les coups
-
-
- Chaque participant repart avec une récompense.
-
-
-
-
- {/* Feature 2 */}
-
-
- 🌱
-
- Thés bio certifiés
-
-
- Une qualité contrôlée et garantie.
-
-
-
-
- {/* Feature 3 */}
-
-
- ✅
-
- Satisfait ou remboursé
-
-
- Une expérience 100% sereine.
-
-
-
-
-
-
-
- {/* Final CTA */}
-
-
-
-
- Prêt à tenter votre chance ?
-
-
- Inscrivez-vous gratuitement et participez au jeu-concours dès maintenant
-
-
-
- Créer mon compte
-
+
+
+ Participer maintenant
+
-
-
+
+
);
diff --git a/app/register/page.tsx b/app/register/page.tsx
index 58364dd..311dcb3 100644
--- a/app/register/page.tsx
+++ b/app/register/page.tsx
@@ -4,16 +4,14 @@ import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { useAuth } from "@/contexts/AuthContext";
import { registerSchema, RegisterFormData } from "@/lib/validations";
-import { Input } from "@/components/ui/Input";
-import Button from "@/components/Button";
-import { Card } from "@/components/ui/Card";
import Link from "next/link";
-import Image from "next/image";
import { ROUTES } from "@/utils/constants";
export default function RegisterPage() {
const { register: registerUser } = useAuth();
const [isSubmitting, setIsSubmitting] = useState(false);
+ const [showPassword, setShowPassword] = useState(false);
+ const [showConfirmPassword, setShowConfirmPassword] = useState(false);
const {
register,
@@ -35,136 +33,214 @@ export default function RegisterPage() {
};
return (
-
-
+
+
+
+ {/* Title */}
-
-
-
-
Inscription
+
Inscription
Créez un compte pour participer au jeu-concours
-
-
-
+ {/* Main Card */}
+
-
+ {/* Tabs */}
+
+
+ Connexion
+
+
+ Inscription
+
-
+ {/* Form Container */}
+
-
+ {/* Registration Form */}
+
-
+ {/* Prénom et Nom */}
+
+
+
+ Prénom *
+
+
+ {errors.firstName && (
+
{errors.firstName.message}
+ )}
+
-
+
+
+ Nom *
+
+
+ {errors.lastName && (
+
{errors.lastName.message}
+ )}
+
+
-
+
+ {/* Téléphone */}
+
+
+ Téléphone
+
+
+
Optionnel - Format: 06 12 34 56 78
+ {errors.phone && (
+
{errors.phone.message}
+ )}
+
+
+ {/* Mot de passe */}
+
+
+ Mot de passe *
+
+
+
+
setShowPassword(!showPassword)}
+ className="absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-700"
+ >
+ {showPassword ? (
+
+
+
+ ) : (
+
+
+
+
+ )}
+
+
+
Min. 8 caractères, 1 majuscule, 1 minuscule, 1 chiffre
+ {errors.password && (
+
{errors.password.message}
+ )}
+
+
+ {/* Confirmer mot de passe */}
+
+
+ Confirmer le mot de passe *
+
+
+
+
setShowConfirmPassword(!showConfirmPassword)}
+ className="absolute right-3 top-1/2 -translate-y-1/2 text-gray-500 hover:text-gray-700"
+ >
+ {showConfirmPassword ? (
+
+
+
+ ) : (
+
+
+
+
+ )}
+
+
+ {errors.confirmPassword && (
+
{errors.confirmPassword.message}
+ )}
+
+
+ {/* Checkbox CGU */}
+
+
+
+ J'accepte les{' '}
+
+ conditions d'utilisation
+ {' '}
+ et la{' '}
+
+ politique de confidentialité
+ {' '}
+ *
+
+
+
+ {/* Submit Button */}
+
- conditions d'utilisation
- {" "}
- et la{" "}
-
- politique de confidentialité
-
-
+ {isSubmitting ? "Inscription..." : "S'inscrire"}
+
+
+
-
-
- S'inscrire
-
-
-
-
- Vous avez déjà un compte ?{" "}
-
- Se connecter
-
-
-
+
+
);
}
diff --git a/app/rules/page.tsx b/app/rules/page.tsx
index de53d1d..403b179 100644
--- a/app/rules/page.tsx
+++ b/app/rules/page.tsx
@@ -1,289 +1,351 @@
-import type { Metadata } from "next";
-import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/Card";
+'use client';
-export const metadata: Metadata = {
- title: "Règlement du jeu - Thé Tip Top",
- description: "Règlement officiel du jeu-concours Thé Tip Top",
-};
+import type { Metadata } from "next";
+import { useState } from "react";
export default function RulesPage() {
+ const [openSection, setOpenSection] = useState
(null);
+
+ const toggleSection = (index: number) => {
+ setOpenSection(openSection === index ? null : index);
+ };
+
return (
-
-
-
- Règlement du jeu-concours
-
-
-
-
Jeu-concours Thé Tip Top 2025
-
Du 01/01/2025 au 31/12/2025
+
+ {/* Hero Section */}
+
+
+
+
+ Règlement du jeu-concours
+
+
+ Toutes les conditions de participation à notre grand jeu-concours "Thé Tip Top"
+ pour l'ouverture de notre 10e boutique.
+
+
+
- {/* Article 1 */}
-
-
- Article 1 - Société organisatrice
-
-
-
- Le jeu-concours « Thé Tip Top 2025 » est organisé par :
-
-
-
Thé Tip Top SA
-
Société Anonyme au capital de 150 000 €
-
Siège social : 18 rue Léon Frot, 75011 Paris
-
RCS Paris B 812 456 789
-
Email : contact@thetiptop.fr
-
-
-
-
- {/* Article 2 */}
-
-
- Article 2 - Durée du jeu
-
-
-
- Le jeu-concours se déroule du 1er janvier 2025 à 00h00 au{" "}
- 31 décembre 2025 à 23h59 (heure de Paris).
-
-
- Seules les participations enregistrées pendant cette période seront prises en compte.
-
-
-
-
- {/* Article 3 */}
-
-
- Article 3 - Conditions de participation
-
-
-
- Le jeu est ouvert à toute personne physique majeure résidant en France métropolitaine.
-
-
- Sont exclus de la participation :
-
-
- Les membres du personnel de Thé Tip Top SA et de ses prestataires
- Les membres de leur famille (conjoint, ascendants, descendants)
- Toute personne ayant participé à l'élaboration du jeu
-
-
- La participation au jeu implique l'acceptation pleine et entière du présent règlement.
-
-
-
-
- {/* Article 4 */}
-
-
- Article 4 - Modalités de participation
-
-
-
- Pour participer au jeu, le participant doit :
-
-
- Effectuer un achat dans l'une des boutiques Thé Tip Top participantes
- Récupérer son ticket de caisse comportant un code unique à 10 caractères
- Se rendre sur le site www.thetiptop.fr
- Créer un compte ou se connecter à son compte existant
- Saisir le code figurant sur son ticket dans l'espace dédié
- Découvrir instantanément son gain
-
-
- Important : Chaque code ne peut être utilisé qu'une seule fois.
- Toute tentative de fraude entraînera l'exclusion du participant.
-
-
-
-
- {/* Article 5 */}
-
-
- Article 5 - Dotations
-
-
-
- Les dotations suivantes sont mises en jeu :
-
-
-
-
🍵 Infuseur à thé
-
Un infuseur en acier inoxydable de qualité supérieure
-
Probabilité : 1 ticket sur 4
+ {/* Résumé Section */}
+
+
+
+
+
+ 📋
+
Résumé du jeu-concours
-
-
🌿 Boîte de 100g de thé détox ou signature
-
Un mélange exclusif de plantes biologiques
-
Probabilité : 1 ticket sur 5
-
-
-
☕ Thé gratuit en magasin
-
Une boisson offerte lors de votre prochaine visite
-
Probabilité : 1 ticket sur 2
-
-
-
🎁 Coffret Découverte 39€
-
Une sélection de 6 thés d'exception
-
Probabilité : 1 ticket sur 10
-
-
-
🏆 Coffret Prestige 69€
-
Notre coffret premium avec accessoires
-
Probabilité : très rare
+
+
+ {/* 100% gagnants */}
+
+
🎯
+
100% gagnants
+
+ Chaque participant repart avec un lot garanti
+
+
+
+ {/* 30 + 30 jours */}
+
+
🔄
+
30 + 30 jours
+
+ Période de jeu + délai de réclamation
+
+
+
+ {/* Grand prix 360€ */}
+
+
🏆
+
Grand prix 360€
+
+ Tirage final sous contrôle d'huissier
+
+
-
- 100% des tickets sont gagnants ! Chaque participant repart avec au
- minimum une récompense.
-
-
-
+
+
+
- {/* Article 6 */}
-
-
- Article 6 - Désignation des gagnants
-
-
-
- Le gain est attribué de manière instantanée et aléatoire au moment de la saisie du code,
- selon les probabilités définies à l'article 5.
-
-
- Le participant est immédiatement informé de son gain sur le site.
-
-
-
+ {/* Accordion Sections */}
+
+
+
- {/* Article 7 */}
-
-
- Article 7 - Remise des lots
-
-
-
- Les lots doivent être réclamés dans un délai de 60 jours à compter
- de la date de participation.
-
-
- La remise des lots s'effectue selon les modalités suivantes :
-
-
- Thé gratuit : À retirer en boutique sur présentation du justificatif
- Autres lots : Retrait en boutique ou envoi par courrier (frais de port offerts)
-
-
- Les lots ne peuvent être ni échangés, ni remboursés, ni convertis en espèces.
-
-
-
+ {/* Section 1 - Conditions de participation */}
+
+
toggleSection(1)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 📋
+
1. Conditions de participation
+
+
+
+
+
+ {openSection === 1 && (
+
+
Le jeu est ouvert à toute personne physique majeure résidant en France métropolitaine.
+
Sont exclus de la participation :
+
+ Les membres du personnel de Thé Tip Top et de ses prestataires
+ Les membres de leur famille (conjoint, ascendants, descendants)
+ Toute personne ayant participé à l'élaboration du jeu
+
+
La participation au jeu implique l'acceptation pleine et entière du présent règlement.
+
+ )}
+
- {/* Article 8 */}
-
-
- Article 8 - Données personnelles
-
-
-
- Les données personnelles collectées dans le cadre du jeu font l'objet d'un traitement
- informatique destiné à gérer la participation au jeu et l'attribution des lots.
-
-
- Pour plus d'informations, consultez notre{" "}
-
- Politique de confidentialité
- .
-
-
-
+ {/* Section 2 - Codes de participation */}
+
+
toggleSection(2)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 🎫
+
2. Codes de participation
+
+
+
+
+
+ {openSection === 2 && (
+
+
Pour participer au jeu, le participant doit :
+
+ Effectuer un achat de minimum 49€ dans une boutique Thé Tip Top participante
+ Récupérer son ticket de caisse comportant un code unique à 10 caractères
+ Se rendre sur le site www.thetiptop.fr
+ Créer un compte ou se connecter à son compte existant
+ Saisir le code figurant sur son ticket dans l'espace dédié
+ Découvrir instantanément son gain
+
+
+
⚠️ Important
+
Chaque code ne peut être utilisé qu'une seule fois. Toute tentative de fraude entraînera l'exclusion du participant.
+
+
+ )}
+
- {/* Article 9 */}
-
-
- Article 9 - Responsabilité
-
-
-
- La responsabilité de Thé Tip Top SA ne saurait être engagée en cas de :
-
-
- Force majeure ou événement indépendant de sa volonté
- Défaillance technique du réseau Internet
- Utilisation frauduleuse des codes
- Mauvaise utilisation des lots par les gagnants
-
-
-
+ {/* Section 3 - Calendrier et délais */}
+
+
toggleSection(3)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 📅
+
3. Calendrier et délais
+
+
+
+
+
+ {openSection === 3 && (
+
+
+
📍 Période de participation
+
Du 1er janvier 2025 à 00h00 au 31 janvier 2025 à 23h59 (heure de Paris)
+
+
+
📍 Délai de réclamation des lots
+
30 jours après la date de participation pour réclamer votre lot
+
+
+
📍 Tirage final
+
Le tirage au sort pour le grand prix (1 an de thé - 360€) aura lieu le 15 février 2025 sous contrôle d'huissier de justice
+
+
+
✓ À retenir
+
Seules les participations enregistrées pendant la période officielle seront prises en compte.
+
+
+ )}
+
- {/* Article 10 */}
-
-
- Article 10 - Modification et annulation
-
-
-
- Thé Tip Top SA se réserve le droit d'annuler, de reporter, de prolonger, d'écourter
- ou de modifier tout ou partie du jeu en cas de force majeure.
-
-
- Toute modification fera l'objet d'une information sur le site www.thetiptop.fr.
-
-
-
+ {/* Section 4 - Tirage final Grand Prix */}
+
+
toggleSection(4)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 🏆
+
4. Tirage final - Grand Prix
+
+
+
+
+
+ {openSection === 4 && (
+
+
Grand Prix : 1 an de thé offert (valeur 360€)
+
À l'issue de la période de participation, un tirage au sort sera organisé pour désigner le grand gagnant du prix principal.
+
+
Conditions du tirage :
+
+ Date : 15 février 2025
+ Lieu : Siège social de Thé Tip Top, Paris
+ Sous contrôle d'huissier de justice : Maître Dupont, Office Notarial de Paris
+ Tous les participants ayant validé au moins un code sont automatiquement inscrits
+
+
+
+
Le lot :
+
Le gagnant recevra pendant 12 mois consécutifs une livraison mensuelle de thé d'une valeur de 30€, soit un total de 360€.
+
+
+
🎁 Information
+
Le gagnant sera contacté par email et par téléphone dans les 48h suivant le tirage.
+
+
+ )}
+
- {/* Article 11 */}
-
-
- Article 11 - Dépôt du règlement
-
-
-
- Le présent règlement est déposé auprès d'un huissier de justice et peut être consulté
- sur le site www.thetiptop.fr.
-
-
- Un exemplaire peut être adressé gratuitement à toute personne qui en fait la demande
- à l'adresse : contact@thetiptop.fr
-
-
-
+ {/* Section 5 - Retrait des lots */}
+
+
toggleSection(5)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 🎁
+
5. Retrait des lots
+
+
+
+
+
+ {openSection === 5 && (
+
+
Les lots doivent être réclamés dans un délai de 30 jours à compter de la date de participation.
+
+
Modalités de remise :
+
+ Infuseur, thé détox/signature : Retrait en boutique ou envoi postal (frais de port offerts)
+ Coffrets découverte et prestige : Retrait en boutique ou livraison à domicile offerte
+ Grand prix (1 an de thé) : Livraison mensuelle à l'adresse de votre choix
+
+
+
+
⚠️ Attention
+
Les lots non réclamés dans le délai imparti seront considérés comme abandonnés. Aucun lot ne peut être échangé, remboursé ou converti en espèces.
+
+
+ )}
+
- {/* Article 12 */}
-
-
- Article 12 - Litiges
-
-
-
- Le présent règlement est régi par le droit français.
-
-
- Tout litige relatif à l'interprétation ou à l'exécution du présent règlement sera
- de la compétence exclusive des tribunaux français.
-
-
-
+ {/* Section 6 - Protection des données */}
+
+
toggleSection(6)}
+ className="w-full flex items-center justify-between p-6 text-left hover:bg-gray-50 transition-colors"
+ >
+
+ 🔒
+
6. Protection des données personnelles
+
+
+
+
+
+ {openSection === 6 && (
+
+
Les données personnelles collectées dans le cadre du jeu font l'objet d'un traitement informatique destiné à gérer la participation au jeu et l'attribution des lots.
+
+
Vos droits :
+
+ Droit d'accès à vos données personnelles
+ Droit de rectification de vos données
+ Droit à l'effacement de vos données
+ Droit d'opposition au traitement
+ Droit à la portabilité des données
+
+
+
Pour exercer vos droits, contactez-nous à : contact@thetiptop.fr
+
Pour plus d'informations, consultez notre Politique de confidentialité .
+
+ )}
+
- {/* Contact */}
-
-
- Contact
-
-
-
- Pour toute question relative au jeu-concours :{" "}
-
- contact@thetiptop.fr
-
-
-
-
-
+
+
+
+
+ {/* Informations légales Section */}
+
+
+
+
+
Informations légales
+
+
+
+
Organisateur
+
Thé Tip Top
+
18 Avenue des Thés
+
75001 Paris, France
+
SIRET: 12345678901234
+
+
+
+
Huissier
+
Maître Dupont
+
Office Notarial de Paris
+
456 Rue de la Justice
+
75002 Paris, France
+
+
+
+
+
+ Jeu-concours gratuit sans obligation d'achat, sauf pour l'acquisition du ticket donnant droit à participation.
+ Règlement déposé chez Maître Dupont, huissier de justice à Paris.
+
+
+
+
+
+
);
}
diff --git a/components/Footer.tsx b/components/Footer.tsx
index 3f406cd..5599842 100644
--- a/components/Footer.tsx
+++ b/components/Footer.tsx
@@ -184,7 +184,7 @@ export default function Footer() {
{/* Bottom Bar */}
-