/** * Logique JavaScript côté client */ document.addEventListener('DOMContentLoaded', () => { // 1. Filtrage instantané de la liste des véhicules initLiveSearch(); // 2. Auto-disparition des alertes flash après 5 secondes initFlashAutoDismiss(); }); /** * Filtre en direct les cartes de voitures selon la saisie */ function initLiveSearch() { const searchInput = document.getElementById('searchInput'); const carCounter = document.getElementById('carCounter'); const cards = document.querySelectorAll('.car-card'); if (!searchInput || cards.length === 0) return; searchInput.addEventListener('input', (e) => { const query = e.target.value.toLowerCase().trim(); let visibleCount = 0; cards.forEach((card) => { const content = card.getAttribute('data-search') || ''; if (content.includes(query)) { card.style.display = 'flex'; visibleCount++; } else { card.style.display = 'none'; } }); if (carCounter) { carCounter.textContent = visibleCount; } }); } /** * Fait disparaître les messages flash automatiquement */ function initFlashAutoDismiss() { const alert = document.getElementById('flash-alert'); if (!alert) return; setTimeout(() => { alert.style.transition = 'opacity 0.5s ease'; alert.style.opacity = '0'; setTimeout(() => alert.remove(), 500); }, 5000); } /** * Confirmation générique pour les actions destructives */ function confirmAction(message) { return window.confirm(message || 'Voulez-vous vraiment effectuer cette action ?'); }