From 323fc50fb414886c784171e553be8db531345aa6 Mon Sep 17 00:00:00 2001 From: Patrick Racicot Date: Thu, 28 Sep 2023 09:28:36 -0400 Subject: [PATCH] [Facets] fix mobile count update --- assets/facets.js | 66 +++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/assets/facets.js b/assets/facets.js index 1296864348b..4d7f8336c5c 100644 --- a/assets/facets.js +++ b/assets/facets.js @@ -120,7 +120,16 @@ class FacetFiltersForm extends HTMLElement { FacetFiltersForm.renderActiveFacets(parsedHTML); FacetFiltersForm.renderAdditionalElements(parsedHTML); - if (countsToRender) FacetFiltersForm.renderCounts(countsToRender, event.target.closest('.js-filter')); + if (countsToRender) { + const closestJSFilterID = event.target.closest('.js-filter').id; + const currentActiveID = document.activeElement.id; + + FacetFiltersForm.renderCounts(countsToRender, event.target.closest('.js-filter')); + FacetFiltersForm.renderMobileCounts(countsToRender, document.getElementById(closestJSFilterID)); + + const newElementToActivate = document.getElementById(currentActiveID); + if (newElementToActivate) newElementToActivate.focus(); + } } static renderActiveFacets(html) { @@ -147,47 +156,34 @@ class FacetFiltersForm extends HTMLElement { } static renderCounts(source, target) { - const filterIsDrawer = Boolean(document.querySelector('.facets-container-drawer')); - const targetElement = filterIsDrawer - ? target.querySelector('.mobile-facets__list') - : target.querySelector('.facets__selected'); - const sourceElement = filterIsDrawer - ? source.querySelector('.mobile-facets__list') - : source.querySelector('.facets__selected'); - - const targetElementAccessibility = filterIsDrawer && target.querySelector('.facets__summary'); - const sourceElementAccessibility = filterIsDrawer && source.querySelector('.facets__summary'); - - if (sourceElement && targetElement) { - const currentActiveID = document.activeElement.id; - const isShowingMore = Boolean(target.querySelector('show-more-button .label-show-more.hidden')); + const targetSummary = target.querySelector('.facets__summary'); + const sourceSummary = source.querySelector('.facets__summary'); - if (sourceElement && targetElement) { - targetElement.outerHTML = sourceElement.outerHTML; - } + if (sourceSummary && targetSummary) { + targetSummary.outerHTML = sourceSummary.outerHTML; + } - if (!filterIsDrawer) { - const targetWrapElement = target.querySelector('.facets-wrap'); - const sourceWrapElement = source.querySelector('.facets-wrap'); - if (sourceWrapElement && targetWrapElement) { - if (isShowingMore) { - sourceWrapElement - .querySelectorAll('.facets__item.hidden') - .forEach((x) => x.classList.replace('hidden', 'show-more-item')); - } + const targetWrapElement = target.querySelector('.facets-wrap'); + const sourceWrapElement = source.querySelector('.facets-wrap'); - targetWrapElement.outerHTML = sourceWrapElement.outerHTML; - } + if (sourceWrapElement && targetWrapElement) { + const isShowingMore = Boolean(target.querySelector('show-more-button .label-show-more.hidden')); + if (isShowingMore) { + sourceWrapElement + .querySelectorAll('.facets__item.hidden') + .forEach((x) => x.classList.replace('hidden', 'show-more-item')); } - const newElementToActivate = document.getElementById(`${currentActiveID}`); - if (newElementToActivate) { - newElementToActivate.focus(); - } + targetWrapElement.outerHTML = sourceWrapElement.outerHTML; } + } + + static renderMobileCounts(source, target) { + const targetFacetsList = target.querySelector('.mobile-facets__list'); + const sourceFacetsList = source.querySelector('.mobile-facets__list'); - if (targetElementAccessibility && sourceElementAccessibility) { - target.querySelector('.facets__summary').outerHTML = source.querySelector('.facets__summary').outerHTML; + if (sourceFacetsList && targetFacetsList) { + targetFacetsList.outerHTML = sourceFacetsList.outerHTML; } }