carhop__dynamiques-theme__P.../resources/js/singles/search-revue.ts
Nonimart d5f86028c1
All checks were successful
continuous-integration/drone/push Build is passing
FEATURE Implkementing innersearch revues and refgactoring search results
2025-10-16 16:19:22 +02:00

44 lines
1.4 KiB
TypeScript

export default function handleSearchRevue() {
const searchRevue = document.querySelector(
'.page--single-revue .sidebar .search-field input'
) as HTMLInputElement;
const contentArea = document.querySelector('.page--single-revue .content-area') as HTMLElement;
const currentRevueId = document
.querySelector('.page--single-revue')
?.getAttribute('data-revue-id') as string;
if (!searchRevue || !contentArea) return;
// Sauvegarder le contenu original
const originalContent = contentArea.innerHTML;
searchRevue.addEventListener('input', async () => {
const searchValue = searchRevue.value.trim();
// Si la recherche est vide, restaurer le contenu original
if (searchValue === '') {
contentArea.innerHTML = originalContent;
return;
}
try {
const response = await fetch(
`/wp-json/dynamiques-datas/v1/build/revues?search=${encodeURIComponent(
searchValue
)}&current_revue_id=${currentRevueId}`
);
const data = await response.json();
// Afficher les résultats dans content-area
contentArea.innerHTML = data.html_template;
} catch (error) {
console.error('Erreur lors de la récupération des revues:', error);
contentArea.innerHTML = `
<div class="search-error">
<p>Une erreur est survenue lors de la recherche. Veuillez réessayer.</p>
</div>
`;
}
});
}