Recevez une estimation personnalisée pour vos matériaux de construction.
Notre Agence
Concept Distribution - Épinay-sur-Seine (Siège)
48 AVENUE D'ENGHIEN, 93800 ÉPINAY-SUR-SEINE
Tél : (Numéro à venir)
C'est notre unique point de retrait pour le moment.
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);
});
}
});