Le partenaire de tous vos chantiers

Demande de Devis en Ligne

Recevez une estimation personnalisée pour vos matériaux de construction.

Vos Informations

Votre Projet

Votre Panier

Votre panier est vide.

import { db } from '/js/firebase-config.js'; // Assurez-vous que firebase-config.js est bien configuré pour Firestore import { collection, addDoc, serverTimestamp } from "https://www.gstatic.com/firebasejs/10.12.2/firebase-firestore.js"; document.addEventListener('DOMContentLoaded', () => { const quoteForm = document.getElementById('quote-request-form'); const quoteMessageArea = document.getElementById('quote-message-area'); if (quoteForm) { quoteForm.addEventListener('submit', async function(event) { // Ajout de 'async' event.preventDefault(); // Empêcher le rechargement de la page // Récupérer les données du formulaire const formData = new FormData(quoteForm); const data = {}; formData.forEach((value, key) => { data[key] = value; }); // Simple validation client-side if (!data['firstname'] || !data['lastname'] || !data['email'] || !data['phone'] || !data['project-address'] || !data['materials-needed']) { quoteMessageArea.textContent = 'Veuillez remplir tous les champs obligatoires.'; quoteMessageArea.classList.add('error', 'visible'); quoteMessageArea.classList.remove('success'); quoteMessageArea.style.display = 'block'; return; } try { // Envoi des données à la collection 'quotes' dans Firestore await addDoc(collection(db, "quotes"), { ...data, status: 'pending', // Statut initial de la demande de devis createdAt: serverTimestamp() // Horodatage du serveur }); quoteMessageArea.textContent = 'Votre demande de devis a été envoyée avec succès ! Nous vous répondrons sous 48h.'; quoteMessageArea.classList.add('success', 'visible'); quoteMessageArea.classList.remove('error'); quoteMessageArea.style.display = 'block'; quoteForm.reset(); // Réinitialiser le formulaire } catch (error) { console.error("Erreur lors de l'envoi du devis à Firestore:", error); quoteMessageArea.textContent = 'Une erreur est survenue lors de l\'envoi de votre demande. Veuillez réessayer.'; quoteMessageArea.classList.add('error', 'visible'); quoteMessageArea.classList.remove('success'); quoteMessageArea.style.display = 'block'; } // Cacher le message après quelques secondes setTimeout(() => { quoteMessageArea.classList.remove('visible'); quoteMessageArea.style.display = 'none'; }, 5000); }); } });