'use client' import { motion } from 'framer-motion' import { useState } from 'react' import { Mail, Phone, MapPin, Clock, Send, Shield, MessageSquare } from 'lucide-react' import BackgroundAnimations from '@/components/BackgroundAnimations' const contactInfo = [ { icon: Mail, label: 'Email', value: 'contact@runlock.re', href: 'mailto:contact@runlock.re', }, { icon: Phone, label: 'Téléphone', value: '0693 51 15 58', href: 'tel:0693511558', }, { icon: MapPin, label: 'Adresse', value: 'La Réunion', href: null, }, { icon: Clock, label: 'Horaires', value: 'Lundi - Vendredi: 9h00 - 18h00\nWeekend: Fermé', href: null, }, ] const services = [ 'Hébergement Cloud', 'Installation NAS', 'Installation Mini PC', 'Autre', ] export default function Contact() { const [formData, setFormData] = useState({ name: '', email: '', company: '', service: '', message: '', }) const [isSubmitting, setIsSubmitting] = useState(false) const [submitStatus, setSubmitStatus] = useState<{ type: 'success' | 'error' | null; message: string }>({ type: null, message: '', }) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setIsSubmitting(true) setSubmitStatus({ type: null, message: '' }) try { const response = await fetch('/api/contact', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(formData), }) const data = await response.json() if (response.ok) { setSubmitStatus({ type: 'success', message: data.message || 'Votre message a été envoyé avec succès !', }) // Réinitialiser le formulaire setFormData({ name: '', email: '', company: '', service: '', message: '', }) } else { setSubmitStatus({ type: 'error', message: data.error || 'Une erreur est survenue. Veuillez réessayer.', }) } } catch (error) { console.error('Erreur lors de l\'envoi du formulaire:', error) setSubmitStatus({ type: 'error', message: 'Une erreur est survenue lors de l\'envoi de votre message. Veuillez réessayer.', }) } finally { setIsSubmitting(false) } } return (
{/* Centered Header */}

Contactez-nous

Nous sommes là pour répondre à vos questions

{/* Left - Contact Info Cards */}
{contactInfo.map((info, index) => (
{info.label}
{info.href ? ( {info.value} ) : (
{info.value}
)}
))} {/* Security Badge */}
Protection anti-spam

Vos données sont sécurisées et ne seront jamais partagées.

{/* Right - Contact Form */}

Envoyez-nous un message

{/* Message de statut */} {submitStatus.type && (
{submitStatus.type === 'success' ? ( ) : ( )} {submitStatus.message}
)}
setFormData({ ...formData, name: e.target.value })} className="w-full px-4 py-3 bg-security-dark border border-security-border rounded-xl text-white placeholder-gray-500 focus:outline-none focus:border-security-accent transition-colors" placeholder="Votre nom" required />
setFormData({ ...formData, email: e.target.value })} className="w-full px-4 py-3 bg-security-dark border border-security-border rounded-xl text-white placeholder-gray-500 focus:outline-none focus:border-security-accent transition-colors" placeholder="votre@email.com" required />
setFormData({ ...formData, company: e.target.value })} className="w-full px-4 py-3 bg-security-dark border border-security-border rounded-xl text-white placeholder-gray-500 focus:outline-none focus:border-security-accent transition-colors" placeholder="Nom de votre entreprise" />