diff --git a/app/about/page.tsx b/app/about/page.tsx index 815a5b2..a81c5f9 100644 --- a/app/about/page.tsx +++ b/app/about/page.tsx @@ -2,7 +2,9 @@ import type { Metadata } from "next"; import Link from "next/link"; +import Image from "next/image"; import { useState } from "react"; +import { Leaf } from "lucide-react"; export default function AboutPage() { return ( @@ -45,21 +47,19 @@ export default function AboutPage() { {/* Image */}
-
- {/* Fallback avec illustration CSS si l'image n'existe pas */} -
- {/* Motif décoratif */} -
-
-
+
+ Thé Tip Top Nice - Notre boutique de thé
- {/* notre engagement Section */}
@@ -71,7 +71,9 @@ export default function AboutPage() {
-
🍵
+
+ +
Thé bio

Tous nos thés sont certifiés biologiques et cultivés dans le respect de l'environnement. @@ -108,6 +110,25 @@ export default function AboutPage() {

+ + {/* Contact Section */} +
+
+
+

Contactez-nous

+

+ Une question sur notre histoire ou nos thés ? N'hésitez pas à nous écrire ! +

+ + ✉️ + thetiptopgr3@gmail.com + +
+
+
); } diff --git a/app/contact/page.tsx b/app/contact/page.tsx index ccd3fe4..0398f1b 100644 --- a/app/contact/page.tsx +++ b/app/contact/page.tsx @@ -27,21 +27,43 @@ export default function ContactPage() { e.preventDefault(); setIsSubmitting(true); - // Simulation d'envoi - await new Promise(resolve => setTimeout(resolve, 1500)); + try { + // Appel à l'API backend + const response = await fetch('http://localhost:4000/api/contact', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + fullName: formData.fullName, + email: formData.email, + subject: formData.subject, + message: formData.message, + }), + }); - console.log('Form submitted:', formData); - alert('Votre message a été envoyé avec succès !'); + const data = await response.json(); - // Reset form - setFormData({ - fullName: '', - email: '', - subject: '', - message: '', - acceptPolicy: false, - }); - setIsSubmitting(false); + if (response.ok && data.success) { + alert('✅ Votre message a été envoyé avec succès ! Nous vous répondrons dans les plus brefs délais.'); + + // Reset form + setFormData({ + fullName: '', + email: '', + subject: '', + message: '', + acceptPolicy: false, + }); + } else { + alert('❌ ' + (data.message || 'Une erreur est survenue. Veuillez réessayer.')); + } + } catch (error) { + console.error('Erreur lors de l\'envoi du message:', error); + alert('❌ Une erreur est survenue lors de l\'envoi de votre message. Veuillez réessayer.'); + } finally { + setIsSubmitting(false); + } }; return ( @@ -221,18 +243,8 @@ export default function ContactPage() {

Email

- - contact@thetiptop.com - -

-

- - support@thetiptop.com - -

-

- - privacy@thetiptop.com + + thetiptopgr3@gmail.com

diff --git a/app/page.tsx.backup b/app/page.tsx.backup new file mode 100644 index 0000000..bff6090 --- /dev/null +++ b/app/page.tsx.backup @@ -0,0 +1,311 @@ +'use client'; + +import Link from "next/link"; +import Image from "next/image"; +import Button from "@/components/Button"; +import CountdownTimer from "@/components/CountdownTimer"; +import GamePeriod from "@/components/GamePeriod"; +import GrandPrize from "@/components/GrandPrize"; +import AboutContest from "@/components/AboutContest"; +import { useState } from "react"; + +export default function HomePage() { + const [animationKey] = useState(Date.now()); + + return ( +
+ {/* Background avec icônes de thé */} +
+ {/* Fond dégradé beige clair */} +
+ + {/* Icônes de thé dispersées avec animation de descente - 35 icônes */} +
+ {/* Ligne 1 - 5 icons */} + + + + + + + {/* Ligne 2 - 5 icons */} + + + + + + + {/* Ligne 3 - 5 icons */} + + + + + + + {/* Ligne 4 - 5 icons */} + + + + + + + {/* Ligne 5 - 5 icons */} + + + + + + + {/* Ligne 6 - 5 icons */} + + + + + + + {/* Ligne 7 - 5 icons */} + + + + + +
+ + {/* Overlay lumineux pour harmoniser */} +
+
+ + {/* Hero Section - Bannière principale */} +
+ +
+
+

+ Jeu Concours Thé Tip Top
+ Nice +

+

+ À l'occasion de l'ouverture de notre 10ème boutique de thé premium à Nice,
+ participez à notre concours et gagnez des thés et accessoires exclusifs ! +

+ +
+ + + +
+
+
+
+ + {/* Game Period & Countdown Section */} +
+
+
+ {/* Countdown Timer */} + + + {/* Game Period Cards */} + + + {/* Grand Prize Banner */} + +
+
+
+ + {/* About Contest Section */} + + + {/* How to Participate Section */} +
+
+
+

+ Comment participer? +

+

+ 3 étapes simples pour découvrir votre lot et rejoindre nos milliers de gagnants +

+ +
+ {/* Step 1 */} +
+
+ 1 +
+
+ + + +
+

Inscrivez-vous

+

+ Créez votre compte rapidement avec Google, Facebook ou votre email +

+
+ + {/* Step 2 */} +
+
+ 2 +
+
+ + + +
+

Entrez votre code

+

+ Saisissez le code à 10 caractères de votre ticket d'achat à 49€ +

+
+ + {/* Step 3 */} +
+
+ 3 +
+
+ + + +
+

Découvrez votre lot

+

+ Résultat immédiat ! 100% des participants remportent un prix +

+
+
+
+
+
+ + {/* Prizes Section */} +
+
+
+

+ Lots à gagner +

+

+ Découvrez nos magnifiques prix, des accessoires premium aux coffrets exclusifs +

+ +
+ {/* Prize 1 */} +
+
+
🍵
+
+
+
+ 60% +
+

Infuseur à thé premium

+

+ Un infuseur élégant pour vos thés en vrac +

+
+
+ + {/* Prize 2 */} +
+
+
📦
+
+
+
+ 20% +
+

Boîte 100g thé détox

+

+ Mélange détox aux plantes bio +

+
+
+ + {/* Prize 3 */} +
+
+
🌿
+
+
+
+ 10% +
+

Boîte 100g thé signature

+

+ Notre mélange signature exclusif +

+
+
+ + {/* Prize 4 */} +
+
+
🎁
+
+
+
+ 6% +
+

Coffret découverte 39€

+

+ Sélection de nos meilleurs thés +

+
+
+ + {/* Prize 5 */} +
+
+
🏆
+
+
+
+ 4% +
+

Coffret découverte 69€

+

+ Une expérience complète +

+
+
+
+ +
+ + + +
+
+
+
+ +
+ ); +} diff --git a/components/GamePeriod.tsx b/components/GamePeriod.tsx index 0583063..78b82c2 100644 --- a/components/GamePeriod.tsx +++ b/components/GamePeriod.tsx @@ -1,26 +1,6 @@ 'use client'; -interface GamePeriodProps { - purchaseStartDate: Date; - purchaseEndDate: Date; - gameStartDate: Date; - gameEndDate: Date; -} - -export default function GamePeriod({ - purchaseStartDate, - purchaseEndDate, - gameStartDate, - gameEndDate, -}: GamePeriodProps) { - const formatDate = (date: Date) => { - return date.toLocaleDateString('fr-FR', { - day: 'numeric', - month: 'long', - year: 'numeric', - }); - }; - +export default function GamePeriod() { return (
{/* Période d'achat */} @@ -33,27 +13,9 @@ export default function GamePeriod({

Période d'achat

-

+

Achetez vos tickets de 49€ en boutique et obtenez votre code de participation

-
-
- - - - - Du {formatDate(purchaseStartDate)} - -
-
- - - - - Au {formatDate(purchaseEndDate)} - -
-
@@ -68,27 +30,9 @@ export default function GamePeriod({

Période de jeu

-

+

Utilisez vos tickets pour jouer et découvrir vos lots instantanément

-
-
- - - - - Du {formatDate(gameStartDate)} - -
-
- - - - - Au {formatDate(gameEndDate)} - -
-