'use client'; import { useState, useRef } from 'react'; import { motion, useInView } from 'framer-motion'; import { Mail, Phone, MapPin, Clock, Send, MessageSquare, Headphones, Building2, CheckCircle2, Loader2, } from 'lucide-react'; import { LandingHeader, LandingFooter } from '@/components/layout'; export default function ContactPage() { const [formData, setFormData] = useState({ firstName: '', lastName: '', email: '', company: '', phone: '', subject: '', message: '', }); const [isSubmitting, setIsSubmitting] = useState(false); const [isSubmitted, setIsSubmitted] = useState(false); const [error, setError] = useState(''); const heroRef = useRef(null); const formRef = useRef(null); const contactRef = useRef(null); const isHeroInView = useInView(heroRef, { once: true }); const isFormInView = useInView(formRef, { once: true }); const isContactInView = useInView(contactRef, { once: true }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setIsSubmitting(true); // Simulate form submission await new Promise((resolve) => setTimeout(resolve, 1500)); setIsSubmitting(false); setIsSubmitted(true); }; const handleChange = ( e: React.ChangeEvent ) => { setFormData((prev) => ({ ...prev, [e.target.name]: e.target.value, })); }; const contactMethods = [ { icon: Mail, title: 'Email', description: 'Envoyez-nous un email', value: 'contact@xpeditis.com', link: 'mailto:contact@xpeditis.com', color: 'from-blue-500 to-cyan-500', }, { icon: Phone, title: 'Téléphone', description: 'Appelez-nous', value: '+33 1 23 45 67 89', link: 'tel:+33123456789', color: 'from-green-500 to-emerald-500', }, { icon: MessageSquare, title: 'Chat en direct', description: 'Discutez avec notre équipe', value: 'Disponible 24/7', link: '#chat', color: 'from-purple-500 to-pink-500', }, { icon: Headphones, title: 'Support', description: 'Centre d\'aide', value: 'support.xpeditis.com', link: 'https://support.xpeditis.com', color: 'from-orange-500 to-red-500', }, ]; const offices = [ { city: 'Paris', address: '123 Avenue des Champs-Élysées', postalCode: '75008 Paris, France', phone: '+33 1 23 45 67 89', email: 'paris@xpeditis.com', isHQ: true, }, { city: 'Rotterdam', address: 'Wilhelminakade 123', postalCode: '3072 AP Rotterdam, Netherlands', phone: '+31 10 123 4567', email: 'rotterdam@xpeditis.com', isHQ: false, }, { city: 'Hambourg', address: 'Am Sandtorkai 50', postalCode: '20457 Hamburg, Germany', phone: '+49 40 123 4567', email: 'hamburg@xpeditis.com', isHQ: false, }, ]; const subjects = [ { value: '', label: 'Sélectionnez un sujet' }, { value: 'demo', label: 'Demande de démonstration' }, { value: 'pricing', label: 'Questions sur les tarifs' }, { value: 'partnership', label: 'Partenariat' }, { value: 'support', label: 'Support technique' }, { value: 'press', label: 'Relations presse' }, { value: 'careers', label: 'Recrutement' }, { value: 'other', label: 'Autre' }, ]; const containerVariants = { hidden: { opacity: 0, y: 50 }, visible: { opacity: 1, y: 0, transition: { duration: 0.6, staggerChildren: 0.1, }, }, }; const itemVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0, transition: { duration: 0.5 }, }, }; return (
{/* Hero Section */}
Nous contacter

Une question ?
Nous sommes là pour vous

Notre équipe est disponible pour répondre à toutes vos questions sur notre plateforme, nos services et nos tarifs. N'hésitez pas à nous contacter !

{/* Wave */}
{/* Contact Methods */}
{contactMethods.map((method, index) => { const IconComponent = method.icon; return (

{method.title}

{method.description}

{method.value}

); })}
{/* Contact Form & Info */}
{/* Form */}

Envoyez-nous un message

Remplissez le formulaire ci-dessous et nous vous répondrons dans les plus brefs délais.

{isSubmitted ? (

Message envoyé !

Merci pour votre message. Notre équipe vous répondra dans les 24 heures.

) : (