From e05e8ef9ae04b6c05081f5a2fd117a80811f5284 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Tue, 19 Dec 2023 15:59:01 +0100 Subject: [PATCH] fixing open/close accordions --- resources/js/accordeon.js | 18 +++++++++++++++ resources/js/taxonomy-thematique-(faq).js | 28 +++++++---------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/resources/js/accordeon.js b/resources/js/accordeon.js index 98dce1b..9a6d3ca 100644 --- a/resources/js/accordeon.js +++ b/resources/js/accordeon.js @@ -20,6 +20,16 @@ function closeAccordion(detailTag) { detailTag.removeAttribute('open'); }, 300); } +function openAllAccordions(detailTags) { + Array.from(detailTags).forEach((detailTag) => { + openAccordion(detailTag); + }); +} +function closeAllAccordions(detailTags) { + Array.from(detailTags).forEach((detailTag) => { + closeAccordion(detailTag); + }); +} function handleAccordeonClick(detailTag) { let isOpen = detailTag.getAttribute('open'); @@ -46,3 +56,11 @@ export default function accordeonInit() { }); }); } + +export { + openAccordion, + closeAccordion, + openAllAccordions, + closeAllAccordions, + handleAccordeonClick, +}; diff --git a/resources/js/taxonomy-thematique-(faq).js b/resources/js/taxonomy-thematique-(faq).js index c5572c5..93380f5 100644 --- a/resources/js/taxonomy-thematique-(faq).js +++ b/resources/js/taxonomy-thematique-(faq).js @@ -1,3 +1,5 @@ +import { openAllAccordions, closeAllAccordions } from './accordeon.js'; + // ################################## // ### HANDLE FILTER SUBMENU TOGGLE // ################################## @@ -68,40 +70,26 @@ function closeSubMenuFilters() { // ########################### // ### DETAILS DEPLOY / CLOSE // ########################### -function handleDeployDetails() { +function handleDeployCloseAllDetails() { const deployAllButton = document.querySelector('.filters-toolbar__action-button--deploy-all'); const closeAllButton = document.querySelector('.filters-toolbar__action-button--close-all'); + const detailsContainers = document.querySelectorAll('details'); if (!deployAllButton) return; deployAllButton.addEventListener('click', () => { - deployAllDetails(); + openAllAccordions(detailsContainers); deployAllButton.setAttribute('hidden', true); closeAllButton.removeAttribute('hidden'); }); + if (!closeAllButton) return; closeAllButton.addEventListener('click', () => { - closeAllDetails(); + closeAllAccordions(detailsContainers); closeAllButton.setAttribute('hidden', true); deployAllButton.removeAttribute('hidden'); }); } -function deployAllDetails() { - const detailsContainers = document.querySelectorAll('details'); - if (!detailsContainers) return; - - detailsContainers.forEach((details) => { - details.open = true; - }); -} -function closeAllDetails() { - const detailsContainers = document.querySelectorAll('details'); - if (!detailsContainers) return; - - detailsContainers.forEach((details) => { - details.open = false; - }); -} // ################################# // ### UPDATE RESULTS AND DISPLAY @@ -292,7 +280,7 @@ async function hydrateAllQuestions(CurrentMainParentThematiqueId) { export default async function taxonomyThematiqueFaqInit() { const faqFiltersToolbar = document.querySelector('.filters-toolbar--faq'); if (!faqFiltersToolbar) return; - handleDeployDetails(); + handleDeployCloseAllDetails(); handleFilterPosts(); handleSubmenuToggle(); }