PluginProbe
ElasticPress / 5.0.0
ElasticPress v5.0.0
5.3.5 5.3.4 3.6.5 3.6.6 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 5.0.0 5.0.1 5.0.2 All 108 releases
elasticpress / assets / js / blocks / facets / date / view.js

view.js in ElasticPress 5.0.0, at assets/js/blocks/facets/date/view.js

59 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * WordPress dependencies.
3 */
4 import domReady from '@wordpress/dom-ready';
5
6 /**
7 * Initializes the date facet functionality.
8 *
9 */
10 const initFacet = () => {
11 const forms = document.querySelectorAll('.ep-facet-date-form');
12 // eslint-disable-next-line no-undef
13 const filterName = epFacetDate.dateFilterName;
14
15 forms.forEach(function (form) {
16 form.addEventListener('submit', function (event) {
17 event.preventDefault();
18
19 const { value } = this.querySelector(`[name="${filterName}"]:checked`);
20 const { value: startDateValue } =
21 this.querySelector('.ep-date-range-picker')?.querySelector(
22 `[name="${filterName}_from"]`,
23 ) || '';
24
25 const { value: endDateValue } =
26 this.querySelector('.ep-date-range-picker')?.querySelector(
27 `[name="${filterName}_to"]`,
28 ) || '';
29
30 const currentURL = window.location.href;
31 const newUrl = new URL(currentURL);
32
33 if (value !== 'custom') {
34 newUrl.searchParams.set(filterName, value);
35 } else {
36 newUrl.searchParams.set(filterName, `${startDateValue},${endDateValue}`);
37 }
38
39 window.location.href = decodeURIComponent(newUrl);
40 });
41
42 const radioButtons = form.querySelectorAll('.ep-radio');
43 radioButtons.forEach(function (element) {
44 element.addEventListener('change', function () {
45 const dateRangePicker = element
46 .closest('.ep-facet-date-form')
47 .querySelector('.ep-date-range-picker');
48 if (element.value === 'custom') {
49 dateRangePicker?.classList.remove('is-hidden');
50 } else {
51 dateRangePicker?.classList.add('is-hidden');
52 }
53 });
54 });
55 });
56 };
57
58 domReady(initFacet);
59