Skip to content

Commit

Permalink
[Facets] fix mobile count update
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickracicot committed Oct 2, 2023
1 parent 0458195 commit 8129877
Showing 1 changed file with 33 additions and 35 deletions.
68 changes: 33 additions & 35 deletions assets/facets.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,18 @@ 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;

if (closestJSFilterID) {
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) {
Expand All @@ -147,47 +158,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((hiddenItem) => hiddenItem.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;
}
}

Expand Down

0 comments on commit 8129877

Please sign in to comment.