VoituresApi-API-Front/public/assets/js/main.js

63 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2026-09-18 09:11:18 +00:00
/**
* 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 ?');
}