// Script pour gérer les toasts document.addEventListener('DOMContentLoaded', function() { // Récupérer les messages flash de Symfony }); // Scripts pour reCAPTCHA function onRecaptchaSuccess() { document.getElementById('submitBtn').disabled = false; document.getElementById('submitBtn').textContent = 'Envoyer Message'; } function onRecaptchaExpired() { document.getElementById('submitBtn').disabled = true; document.getElementById('submitBtn').textContent = 'Validez le captcha'; } // Validation du formulaire avant envoi document.addEventListener('DOMContentLoaded', function() { const form = document.getElementById('contactForm'); if (form) { form.addEventListener('submit', function(e) { const recaptchaResponse = grecaptcha.getResponse(); if (!recaptchaResponse) { e.preventDefault(); showToast('Veuillez valider le captcha avant d\'envoyer le message.', 'error'); return false; } }); } }); // Fonction pour afficher un toast function showToast(message, type) { const toastContainer = document.getElementById('toastContainer'); // Créer le toast const toast = document.createElement('div'); toast.className = 'toast toast-' + (type === 'error' ? 'error' : type); // Déterminer l'icône en fonction du type let icon = ''; switch(type) { case 'success': icon = ''; break; case 'error': icon = ''; break; case 'info': icon = ''; break; case 'warning': icon = ''; break; default: icon = ''; } // Contenu du toast toast.innerHTML = ` ${icon}
${message}
`; // Ajouter le toast au conteneur toastContainer.appendChild(toast); // Afficher le toast avec une animation setTimeout(() => { toast.classList.add('show'); }, 10); // Supprimer le toast après 5 secondes setTimeout(() => { toast.classList.remove('show'); setTimeout(() => { toast.remove(); }, 300); }, 5000); }