@constructor-io/constructorio-ui-plp 1.4.6 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ function FilterOptionsList(props) {
14
14
  'cio-collapsible-is-open': !isCollapsed,
15
15
  }) },
16
16
  react_1.default.createElement("ul", { className: 'cio-filter-multiple-options-list cio-collapsible-inner' },
17
- optionsToRender.map((option) => (react_1.default.createElement(FilterOptionListRow_1.default, { id: `${facet.name}-${option.value}`, optionValue: option.value, displayValue: option.displayName, displayCountValue: option.count.toString(), isChecked: selectedOptionMap[option.value] || false, onChange: onOptionSelect }))),
17
+ optionsToRender.map((option) => (react_1.default.createElement(FilterOptionListRow_1.default, { id: `${facet.name}-${option.value}`, key: option.value, optionValue: option.value, displayValue: option.displayName, displayCountValue: option.count.toString(), isChecked: selectedOptionMap[option.value] || false, onChange: onOptionSelect }))),
18
18
  initialNumOptions < facet.options.length && (react_1.default.createElement("button", { type: 'button', className: 'cio-see-all', onClick: () => setIsShowAll(!isShowAll) }, isShowAll ? 'Show Less' : 'Show All')))));
19
19
  }
20
20
  exports.default = FilterOptionsList;
@@ -7,12 +7,13 @@ const FilterGroup_1 = tslib_1.__importDefault(require("./FilterGroup"));
7
7
  const useFilter_1 = tslib_1.__importDefault(require("../../hooks/useFilter"));
8
8
  function Filters(props) {
9
9
  const { children, initialNumOptions } = props, useFiltersProps = tslib_1.__rest(props, ["children", "initialNumOptions"]);
10
- const { facets, setFilter, sliderStep, facetSliderSteps } = (0, useFilter_1.default)(useFiltersProps);
10
+ const { facets, setFilter, sliderStep, facetSliderSteps, clearFilters } = (0, useFilter_1.default)(useFiltersProps);
11
11
  return (react_1.default.createElement(react_1.default.Fragment, null, typeof children === 'function' ? (children({
12
12
  facets,
13
13
  setFilter,
14
14
  sliderStep,
15
15
  facetSliderSteps,
16
+ clearFilters,
16
17
  })) : (react_1.default.createElement("div", { className: 'cio-filters' }, facets.map((facet) => (react_1.default.createElement(FilterGroup_1.default, { facet: facet, initialNumOptions: initialNumOptions, setFilter: setFilter, sliderStep: sliderStep, facetSliderSteps: facetSliderSteps, key: facet.name })))))));
17
18
  }
18
19
  exports.default = Filters;
@@ -10,9 +10,8 @@ function useFilter(props) {
10
10
  throw new Error('useFilter must be used within a component that is a child of <CioPlp />');
11
11
  }
12
12
  const { getRequestConfigs, setRequestConfigs } = (0, useRequestConfigs_1.default)();
13
- const { filters: requestFilters } = getRequestConfigs();
14
13
  const setFilter = (filterName, filterValue) => {
15
- const newFilters = requestFilters || {};
14
+ const newFilters = getRequestConfigs().filters || {};
16
15
  newFilters[filterName] = filterValue;
17
16
  // Remove filter entirely
18
17
  if (filterValue === null) {
@@ -20,11 +19,15 @@ function useFilter(props) {
20
19
  }
21
20
  setRequestConfigs({ filters: newFilters, page: 1 });
22
21
  };
22
+ const clearFilters = () => {
23
+ setRequestConfigs({ filters: {}, page: 1 });
24
+ };
23
25
  return {
24
26
  facets,
25
27
  setFilter,
26
28
  sliderStep,
27
29
  facetSliderSteps,
30
+ clearFilters,
28
31
  };
29
32
  }
30
33
  exports.default = useFilter;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '1.4.6';
3
+ exports.default = '1.4.7';
@@ -11,6 +11,6 @@ export default function FilterOptionsList(props) {
11
11
  'cio-collapsible-is-open': !isCollapsed,
12
12
  }) },
13
13
  React.createElement("ul", { className: 'cio-filter-multiple-options-list cio-collapsible-inner' },
14
- optionsToRender.map((option) => (React.createElement(FilterOptionListRow, { id: `${facet.name}-${option.value}`, optionValue: option.value, displayValue: option.displayName, displayCountValue: option.count.toString(), isChecked: selectedOptionMap[option.value] || false, onChange: onOptionSelect }))),
14
+ optionsToRender.map((option) => (React.createElement(FilterOptionListRow, { id: `${facet.name}-${option.value}`, key: option.value, optionValue: option.value, displayValue: option.displayName, displayCountValue: option.count.toString(), isChecked: selectedOptionMap[option.value] || false, onChange: onOptionSelect }))),
15
15
  initialNumOptions < facet.options.length && (React.createElement("button", { type: 'button', className: 'cio-see-all', onClick: () => setIsShowAll(!isShowAll) }, isShowAll ? 'Show Less' : 'Show All')))));
16
16
  }
@@ -4,11 +4,12 @@ import FilterGroup from './FilterGroup';
4
4
  import useFilter from '../../hooks/useFilter';
5
5
  export default function Filters(props) {
6
6
  const { children, initialNumOptions, ...useFiltersProps } = props;
7
- const { facets, setFilter, sliderStep, facetSliderSteps } = useFilter(useFiltersProps);
7
+ const { facets, setFilter, sliderStep, facetSliderSteps, clearFilters } = useFilter(useFiltersProps);
8
8
  return (React.createElement(React.Fragment, null, typeof children === 'function' ? (children({
9
9
  facets,
10
10
  setFilter,
11
11
  sliderStep,
12
12
  facetSliderSteps,
13
+ clearFilters,
13
14
  })) : (React.createElement("div", { className: 'cio-filters' }, facets.map((facet) => (React.createElement(FilterGroup, { facet: facet, initialNumOptions: initialNumOptions, setFilter: setFilter, sliderStep: sliderStep, facetSliderSteps: facetSliderSteps, key: facet.name })))))));
14
15
  }
@@ -7,9 +7,8 @@ export default function useFilter(props) {
7
7
  throw new Error('useFilter must be used within a component that is a child of <CioPlp />');
8
8
  }
9
9
  const { getRequestConfigs, setRequestConfigs } = useRequestConfigs();
10
- const { filters: requestFilters } = getRequestConfigs();
11
10
  const setFilter = (filterName, filterValue) => {
12
- const newFilters = requestFilters || {};
11
+ const newFilters = getRequestConfigs().filters || {};
13
12
  newFilters[filterName] = filterValue;
14
13
  // Remove filter entirely
15
14
  if (filterValue === null) {
@@ -17,10 +16,14 @@ export default function useFilter(props) {
17
16
  }
18
17
  setRequestConfigs({ filters: newFilters, page: 1 });
19
18
  };
19
+ const clearFilters = () => {
20
+ setRequestConfigs({ filters: {}, page: 1 });
21
+ };
20
22
  return {
21
23
  facets,
22
24
  setFilter,
23
25
  sliderStep,
24
26
  facetSliderSteps,
27
+ clearFilters,
25
28
  };
26
29
  }
@@ -1 +1 @@
1
- export default '1.4.6';
1
+ export default '1.4.7';
@@ -4,6 +4,7 @@ export interface UseFilterReturn {
4
4
  setFilter: (filterName: string, filterValue: PlpFilterValue) => void;
5
5
  sliderStep?: number;
6
6
  facetSliderSteps?: Record<string, number>;
7
+ clearFilters: () => void;
7
8
  }
8
9
  export interface UseFilterProps {
9
10
  /**
@@ -1,2 +1,2 @@
1
- declare const _default: "1.4.6";
1
+ declare const _default: "1.4.7";
2
2
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-ui-plp",
3
- "version": "1.4.6",
3
+ "version": "1.4.7",
4
4
  "description": "Constructor PLP UI library for web applications",
5
5
  "author": "Constructor.io Corporation",
6
6
  "license": "MIT",