diff --git a/resources/js/archives/archives.ts b/resources/js/archives/archives.ts index 65c27a4..ca56fc6 100644 --- a/resources/js/archives/archives.ts +++ b/resources/js/archives/archives.ts @@ -22,6 +22,8 @@ export default function archivesInit() { ) as HTMLSelectElement; const rechercheInput = toolbar.querySelector('.search-bar input') as HTMLInputElement; + const resetSearchButton = toolbar.querySelector('#reset-search') as HTMLButtonElement; + // Évite les courses: annule les requêtes précédentes et ignore les réponses obsolètes let currentAbortController: AbortController | null = null; let lastRequestId = 0; @@ -110,20 +112,34 @@ export default function archivesInit() { }); } - auteursSelect.addEventListener('change', (e) => { - hydratePosts(); - }); + if (auteursSelect) { + auteursSelect.addEventListener('change', (e) => { + hydratePosts(); + }); + } - etiquettesSelect.addEventListener('change', (e) => { - hydratePosts(); - }); - - sortBySelect.addEventListener('change', (e) => { - hydratePosts(); // immédiat pour le tri - }); - rechercheInput.addEventListener('input', (e) => { - hydratePostsDebounced(); // debounce pour la saisie rapide - }); + if (etiquettesSelect) { + etiquettesSelect.addEventListener('change', (e) => { + hydratePosts(); + }); + } + if (sortBySelect) { + sortBySelect.addEventListener('change', (e) => { + hydratePosts(); // immédiat pour le tri + }); + } + if (rechercheInput) { + rechercheInput.addEventListener('input', (e) => { + hydratePostsDebounced(); // debounce pour la saisie rapide + }); + if (resetSearchButton) { + resetSearchButton.addEventListener('click', (e) => { + e.preventDefault(); + rechercheInput.value = ''; + hydratePosts(); + }); + } + } handleFilterPostsBy(); postGridToolbarActions.addEventListener('click', (e) => {