@blaze-cms/react-page-builder 0.113.0-alpha.7 → 0.113.1

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,47 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.113.1](https://github.com/thebyte9/blaze/compare/v0.113.0...v0.113.1) (2021-11-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * do not display loop data summary prop if label not set ([#3225](https://github.com/thebyte9/blaze/issues/3225)) ([1929b13](https://github.com/thebyte9/blaze/commit/1929b134e1631fda047e4bc142208676fdf2da01))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.113.0](https://github.com/thebyte9/blaze/compare/v0.113.0-alpha.9...v0.113.0) (2021-11-19)
18
+
19
+ **Note:** Version bump only for package @blaze-cms/react-page-builder
20
+
21
+
22
+
23
+
24
+
25
+ # [0.113.0-alpha.9](https://github.com/thebyte9/blaze/compare/v0.113.0-alpha.8...v0.113.0-alpha.9) (2021-11-19)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * render form when now aggregations are needed ([#3221](https://github.com/thebyte9/blaze/issues/3221)) ([50f4b15](https://github.com/thebyte9/blaze/commit/50f4b157b9fe74b423d20035a34cb5a7d59fb557))
31
+
32
+
33
+
34
+
35
+
36
+ # [0.113.0-alpha.8](https://github.com/thebyte9/blaze/compare/v0.113.0-alpha.7...v0.113.0-alpha.8) (2021-11-18)
37
+
38
+
39
+ ### Bug Fixes
40
+
41
+ * move submit function above first call ([#3219](https://github.com/thebyte9/blaze/issues/3219)) ([ca0af48](https://github.com/thebyte9/blaze/commit/ca0af4802d144a9825f361a7271788d123e04885))
42
+
43
+
44
+
45
+
46
+
6
47
  # [0.113.0-alpha.7](https://github.com/thebyte9/blaze/compare/v0.113.0-alpha.6...v0.113.0-alpha.7) (2021-11-17)
7
48
 
8
49
 
@@ -86,7 +86,7 @@ var buildLoopPropsContent = function buildLoopPropsContent() {
86
86
  var propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];
87
87
  if (!propValue) return null;
88
88
  var linkToPublishedContent = (0, _getLinkToPublishedContent["default"])(key, data);
89
- return [(0, _lodash["default"])(label) || (0, _lodash["default"])(key), propValue, linkToPublishedContent, modifier];
89
+ return [(0, _lodash["default"])(label), propValue, linkToPublishedContent, modifier];
90
90
  });
91
91
  })).filter(Boolean);
92
92
  loopPropsWithContent.push(propsArray);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"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","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport flatten from 'lodash.flatten';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport getLoopPropsLimit from './get-loop-props-limit';\nimport getPropValue from './get-prop-value';\n\nconst getLoopValue = value => {\n const { keyField } = value;\n return value[keyField];\n};\n\nconst separateValues = (propsToDisplay, loopProps, data) => {\n const regularValues = {};\n const loopValues = {};\n\n propsToDisplay.forEach(options => {\n const { propertiesToDisplay } = options;\n propertiesToDisplay.forEach(prop => {\n const value = getPropValue(prop, data, options);\n const isArrayValue = Array.isArray(value);\n if (!value) return;\n const isLoopableProp = loopProps.includes(prop) && isArrayValue;\n\n if (isLoopableProp) {\n loopValues[prop] = value;\n } else {\n regularValues[prop] = value;\n }\n });\n });\n return [regularValues, loopValues];\n};\n\nconst buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, data = {}) => {\n const loopPropsWithContent = [];\n const [regularValues, loopValues] = separateValues(propsToDisplay, loopProps, data);\n\n const loopLimit = getLoopPropsLimit(loopValues, limit);\n\n for (let i = 0; i < loopLimit; i += 1) {\n const propsArray = flatten(\n propsToDisplay.map(options => {\n const { propertiesToDisplay, label, modifier = '' } = options;\n\n return propertiesToDisplay.map(key => {\n const loopValue = loopValues[key];\n const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];\n if (!propValue) return null;\n const linkToPublishedContent = getLinkToPublishedContent(key, data);\n return [\n upperFirst(label) || upperFirst(key),\n propValue,\n linkToPublishedContent,\n modifier\n ];\n });\n })\n ).filter(Boolean);\n loopPropsWithContent.push(propsArray);\n }\n\n return flatten(loopPropsWithContent);\n};\n\nexport default buildLoopPropsContent;\n"],"file":"build-loop-props-content.js"}
1
+ {"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"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","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport flatten from 'lodash.flatten';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport getLoopPropsLimit from './get-loop-props-limit';\nimport getPropValue from './get-prop-value';\n\nconst getLoopValue = value => {\n const { keyField } = value;\n return value[keyField];\n};\n\nconst separateValues = (propsToDisplay, loopProps, data) => {\n const regularValues = {};\n const loopValues = {};\n\n propsToDisplay.forEach(options => {\n const { propertiesToDisplay } = options;\n propertiesToDisplay.forEach(prop => {\n const value = getPropValue(prop, data, options);\n const isArrayValue = Array.isArray(value);\n if (!value) return;\n const isLoopableProp = loopProps.includes(prop) && isArrayValue;\n\n if (isLoopableProp) {\n loopValues[prop] = value;\n } else {\n regularValues[prop] = value;\n }\n });\n });\n return [regularValues, loopValues];\n};\n\nconst buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, data = {}) => {\n const loopPropsWithContent = [];\n const [regularValues, loopValues] = separateValues(propsToDisplay, loopProps, data);\n\n const loopLimit = getLoopPropsLimit(loopValues, limit);\n\n for (let i = 0; i < loopLimit; i += 1) {\n const propsArray = flatten(\n propsToDisplay.map(options => {\n const { propertiesToDisplay, label, modifier = '' } = options;\n\n return propertiesToDisplay.map(key => {\n const loopValue = loopValues[key];\n const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];\n if (!propValue) return null;\n const linkToPublishedContent = getLinkToPublishedContent(key, data);\n return [upperFirst(label), propValue, linkToPublishedContent, modifier];\n });\n })\n ).filter(Boolean);\n loopPropsWithContent.push(propsArray);\n }\n\n return flatten(loopPropsWithContent);\n};\n\nexport default buildLoopPropsContent;\n"],"file":"build-loop-props-content.js"}
@@ -134,6 +134,10 @@ var SearchFilter = function SearchFilter(_ref) {
134
134
  filterValues = _useReducer2[0],
135
135
  dispatch = _useReducer2[1];
136
136
 
137
+ var handleSubmit = (0, _lodash["default"])(function (newValues) {
138
+ var newQuery = (0, _helpers.buildQuery)(newValues, filters);
139
+ handleSearch(newQuery);
140
+ }, 200);
137
141
  (0, _react.useEffect)(function () {
138
142
  if (window && !pageWidth) {
139
143
  setPageWidth(window.innerWidth);
@@ -195,10 +199,6 @@ var SearchFilter = function SearchFilter(_ref) {
195
199
  });
196
200
  };
197
201
 
198
- var handleSubmit = (0, _lodash["default"])(function (newValues) {
199
- var newQuery = (0, _helpers.buildQuery)(newValues, filters);
200
- handleSearch(newQuery);
201
- }, 200);
202
202
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isDesktopFormDisplayed || isMobileFormDisplayed ? /*#__PURE__*/_react["default"].createElement("form", {
203
203
  ref: searchFilterRef,
204
204
  className: formClass,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfter","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersCollapsed","setMoreFiltersCollapsed","filterValues","dispatch","window","innerWidth","handleResize","target","addEventListener","removeEventListener","handleSubmit","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersWrapperClass","moreFiltersTogglerClass","formId","handleReset","updateFilterValues","newQuery","e","preventDefault","slice","SEARCH","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfter\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const moreFiltersWrapperClass = classnames('filter__more-filters-wrapper', {\n 'filter__more-filters-wrapper--open': !moreFiltersCollapsed\n });\n\n const moreFiltersTogglerClass = classnames('filter__more-filters-toggler', {\n 'filter__more-filters-toggler--open': !moreFiltersCollapsed\n });\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!groupAfter && (\n <FiltersList\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {!!groupAfter && (\n <>\n <FiltersList\n data={data}\n filters={filters.slice(0, groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n <button\n className={moreFiltersTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersCollapsed(!moreFiltersCollapsed)}>\n More filters\n </button>\n\n <div className={moreFiltersWrapperClass}>\n <div className=\"filter__more-filters-content\">\n <FiltersList\n data={data}\n filters={filters.slice(groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className=\"filter__more-filters-buttons\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfter: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfter","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersCollapsed","setMoreFiltersCollapsed","filterValues","dispatch","handleSubmit","newQuery","window","innerWidth","handleResize","target","addEventListener","removeEventListener","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersWrapperClass","moreFiltersTogglerClass","formId","handleReset","updateFilterValues","e","preventDefault","slice","SEARCH","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfter\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const moreFiltersWrapperClass = classnames('filter__more-filters-wrapper', {\n 'filter__more-filters-wrapper--open': !moreFiltersCollapsed\n });\n\n const moreFiltersTogglerClass = classnames('filter__more-filters-toggler', {\n 'filter__more-filters-toggler--open': !moreFiltersCollapsed\n });\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!groupAfter && (\n <FiltersList\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {!!groupAfter && (\n <>\n <FiltersList\n data={data}\n filters={filters.slice(0, groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n <button\n className={moreFiltersTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersCollapsed(!moreFiltersCollapsed)}>\n More filters\n </button>\n\n <div className={moreFiltersWrapperClass}>\n <div className=\"filter__more-filters-content\">\n <FiltersList\n data={data}\n filters={filters.slice(groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className=\"filter__more-filters-buttons\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfter: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
@@ -139,15 +139,18 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
139
139
  error = _useQuery.error,
140
140
  loading = _useQuery.loading;
141
141
 
142
- if (loading || !data) return '';
142
+ if (loading) return null;
143
143
  if (error) return error.message;
144
- var _data$searchPublished = data.searchPublishedContent;
145
- _data$searchPublished = _data$searchPublished === void 0 ? {} : _data$searchPublished;
146
- var _data$searchPublished2 = _data$searchPublished.rawResults;
147
- _data$searchPublished2 = _data$searchPublished2 === void 0 ? {} : _data$searchPublished2;
148
- var filterData = _data$searchPublished2.aggregations;
149
- var shouldDisplayForm = !!filters.length && !loading;
150
- if (!shouldDisplayForm || !filterData) return null;
144
+ if (!filters.length) return null;
145
+
146
+ var _ref3 = data || {},
147
+ _ref3$searchPublished = _ref3.searchPublishedContent;
148
+
149
+ _ref3$searchPublished = _ref3$searchPublished === void 0 ? {} : _ref3$searchPublished;
150
+ var _ref3$searchPublished2 = _ref3$searchPublished.rawResults;
151
+ _ref3$searchPublished2 = _ref3$searchPublished2 === void 0 ? {} : _ref3$searchPublished2;
152
+ var _ref3$searchPublished3 = _ref3$searchPublished2.aggregations,
153
+ filterData = _ref3$searchPublished3 === void 0 ? {} : _ref3$searchPublished3;
151
154
  var initialFilterValues = (0, _helpers.getInitialFilterValues)(filterData, filters, query);
152
155
 
153
156
  var handleSearch = function handleSearch(newQuery) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfter","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","asPath","currentUrl","query","sort","sortby","sortValues","baseQuery","action","RAW_RESULTS","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","variables","limit","skip","data","error","loading","message","searchPublishedContent","rawResults","filterData","aggregations","shouldDisplayForm","length","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfter\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n if (loading || !data) return '';\n if (error) return error.message;\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } = data;\n const shouldDisplayForm = !!filters.length && !loading;\n if (!shouldDisplayForm || !filterData) return null;\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfter={groupAfter}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfter: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfter: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfter","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","asPath","currentUrl","query","sort","sortby","sortValues","baseQuery","action","RAW_RESULTS","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","variables","limit","skip","data","error","loading","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfter\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfter={groupAfter}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfter: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfter: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
@@ -51,7 +51,7 @@ const buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, d
51
51
  const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];
52
52
  if (!propValue) return null;
53
53
  const linkToPublishedContent = getLinkToPublishedContent(key, data);
54
- return [upperFirst(label) || upperFirst(key), propValue, linkToPublishedContent, modifier];
54
+ return [upperFirst(label), propValue, linkToPublishedContent, modifier];
55
55
  });
56
56
  })).filter(Boolean);
57
57
  loopPropsWithContent.push(propsArray);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["upperFirst","flatten","getLinkToPublishedContent","getLoopPropsLimit","getPropValue","getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"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","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport flatten from 'lodash.flatten';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport getLoopPropsLimit from './get-loop-props-limit';\nimport getPropValue from './get-prop-value';\n\nconst getLoopValue = value => {\n const { keyField } = value;\n return value[keyField];\n};\n\nconst separateValues = (propsToDisplay, loopProps, data) => {\n const regularValues = {};\n const loopValues = {};\n\n propsToDisplay.forEach(options => {\n const { propertiesToDisplay } = options;\n propertiesToDisplay.forEach(prop => {\n const value = getPropValue(prop, data, options);\n const isArrayValue = Array.isArray(value);\n if (!value) return;\n const isLoopableProp = loopProps.includes(prop) && isArrayValue;\n\n if (isLoopableProp) {\n loopValues[prop] = value;\n } else {\n regularValues[prop] = value;\n }\n });\n });\n return [regularValues, loopValues];\n};\n\nconst buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, data = {}) => {\n const loopPropsWithContent = [];\n const [regularValues, loopValues] = separateValues(propsToDisplay, loopProps, data);\n\n const loopLimit = getLoopPropsLimit(loopValues, limit);\n\n for (let i = 0; i < loopLimit; i += 1) {\n const propsArray = flatten(\n propsToDisplay.map(options => {\n const { propertiesToDisplay, label, modifier = '' } = options;\n\n return propertiesToDisplay.map(key => {\n const loopValue = loopValues[key];\n const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];\n if (!propValue) return null;\n const linkToPublishedContent = getLinkToPublishedContent(key, data);\n return [\n upperFirst(label) || upperFirst(key),\n propValue,\n linkToPublishedContent,\n modifier\n ];\n });\n })\n ).filter(Boolean);\n loopPropsWithContent.push(propsArray);\n }\n\n return flatten(loopPropsWithContent);\n};\n\nexport default buildLoopPropsContent;\n"],"file":"build-loop-props-content.js"}
1
+ {"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["upperFirst","flatten","getLinkToPublishedContent","getLoopPropsLimit","getPropValue","getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"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","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport flatten from 'lodash.flatten';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport getLoopPropsLimit from './get-loop-props-limit';\nimport getPropValue from './get-prop-value';\n\nconst getLoopValue = value => {\n const { keyField } = value;\n return value[keyField];\n};\n\nconst separateValues = (propsToDisplay, loopProps, data) => {\n const regularValues = {};\n const loopValues = {};\n\n propsToDisplay.forEach(options => {\n const { propertiesToDisplay } = options;\n propertiesToDisplay.forEach(prop => {\n const value = getPropValue(prop, data, options);\n const isArrayValue = Array.isArray(value);\n if (!value) return;\n const isLoopableProp = loopProps.includes(prop) && isArrayValue;\n\n if (isLoopableProp) {\n loopValues[prop] = value;\n } else {\n regularValues[prop] = value;\n }\n });\n });\n return [regularValues, loopValues];\n};\n\nconst buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, data = {}) => {\n const loopPropsWithContent = [];\n const [regularValues, loopValues] = separateValues(propsToDisplay, loopProps, data);\n\n const loopLimit = getLoopPropsLimit(loopValues, limit);\n\n for (let i = 0; i < loopLimit; i += 1) {\n const propsArray = flatten(\n propsToDisplay.map(options => {\n const { propertiesToDisplay, label, modifier = '' } = options;\n\n return propertiesToDisplay.map(key => {\n const loopValue = loopValues[key];\n const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];\n if (!propValue) return null;\n const linkToPublishedContent = getLinkToPublishedContent(key, data);\n return [upperFirst(label), propValue, linkToPublishedContent, modifier];\n });\n })\n ).filter(Boolean);\n loopPropsWithContent.push(propsArray);\n }\n\n return flatten(loopPropsWithContent);\n};\n\nexport default buildLoopPropsContent;\n"],"file":"build-loop-props-content.js"}
@@ -61,6 +61,10 @@ const SearchFilter = ({
61
61
  const [pageWidth, setPageWidth] = useState(null);
62
62
  const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);
63
63
  const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
64
+ const handleSubmit = debounce(newValues => {
65
+ const newQuery = buildQuery(newValues, filters);
66
+ handleSearch(newQuery);
67
+ }, 200);
64
68
  useEffect(() => {
65
69
  if (window && !pageWidth) {
66
70
  setPageWidth(window.innerWidth);
@@ -125,10 +129,6 @@ const SearchFilter = ({
125
129
  });
126
130
  };
127
131
 
128
- const handleSubmit = debounce(newValues => {
129
- const newQuery = buildQuery(newValues, filters);
130
- handleSearch(newQuery);
131
- }, 200);
132
132
  return /*#__PURE__*/React.createElement(React.Fragment, null, isDesktopFormDisplayed || isMobileFormDisplayed ? /*#__PURE__*/React.createElement("form", {
133
133
  ref: searchFilterRef,
134
134
  className: formClass,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["React","useState","useEffect","useReducer","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfter","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersCollapsed","setMoreFiltersCollapsed","filterValues","dispatch","window","innerWidth","handleResize","target","addEventListener","removeEventListener","handleSubmit","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersWrapperClass","moreFiltersTogglerClass","formId","handleReset","updateFilterValues","newQuery","e","preventDefault","slice","propTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfter\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const moreFiltersWrapperClass = classnames('filter__more-filters-wrapper', {\n 'filter__more-filters-wrapper--open': !moreFiltersCollapsed\n });\n\n const moreFiltersTogglerClass = classnames('filter__more-filters-toggler', {\n 'filter__more-filters-toggler--open': !moreFiltersCollapsed\n });\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!groupAfter && (\n <FiltersList\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {!!groupAfter && (\n <>\n <FiltersList\n data={data}\n filters={filters.slice(0, groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n <button\n className={moreFiltersTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersCollapsed(!moreFiltersCollapsed)}>\n More filters\n </button>\n\n <div className={moreFiltersWrapperClass}>\n <div className=\"filter__more-filters-content\">\n <FiltersList\n data={data}\n filters={filters.slice(groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className=\"filter__more-filters-buttons\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfter: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["React","useState","useEffect","useReducer","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfter","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersCollapsed","setMoreFiltersCollapsed","filterValues","dispatch","handleSubmit","newQuery","window","innerWidth","handleResize","target","addEventListener","removeEventListener","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersWrapperClass","moreFiltersTogglerClass","formId","handleReset","updateFilterValues","e","preventDefault","slice","propTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfter\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const moreFiltersWrapperClass = classnames('filter__more-filters-wrapper', {\n 'filter__more-filters-wrapper--open': !moreFiltersCollapsed\n });\n\n const moreFiltersTogglerClass = classnames('filter__more-filters-toggler', {\n 'filter__more-filters-toggler--open': !moreFiltersCollapsed\n });\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!groupAfter && (\n <FiltersList\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {!!groupAfter && (\n <>\n <FiltersList\n data={data}\n filters={filters.slice(0, groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n <button\n className={moreFiltersTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersCollapsed(!moreFiltersCollapsed)}>\n More filters\n </button>\n\n <div className={moreFiltersWrapperClass}>\n <div className=\"filter__more-filters-content\">\n <FiltersList\n data={data}\n filters={filters.slice(groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className=\"filter__more-filters-buttons\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfter: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
@@ -67,17 +67,16 @@ const SearchFilterContainer = ({
67
67
  // we only want aggs so limit=0 for no search results
68
68
  skip: !rawQueryStringified
69
69
  });
70
- if (loading || !data) return '';
70
+ if (loading) return null;
71
71
  if (error) return error.message;
72
+ if (!filters.length) return null;
72
73
  const {
73
74
  searchPublishedContent: {
74
75
  rawResults: {
75
- aggregations: filterData
76
+ aggregations: filterData = {}
76
77
  } = {}
77
78
  } = {}
78
- } = data;
79
- const shouldDisplayForm = !!filters.length && !loading;
80
- if (!shouldDisplayForm || !filterData) return null;
79
+ } = data || {};
81
80
  const initialFilterValues = getInitialFilterValues(filterData, filters, query);
82
81
 
83
82
  const handleSearch = newQuery => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","decodeValue","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfter","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","searchPublishedContent","rawResults","aggregations","filterData","shouldDisplayForm","length","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfter\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n if (loading || !data) return '';\n if (error) return error.message;\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } = data;\n const shouldDisplayForm = !!filters.length && !loading;\n if (!shouldDisplayForm || !filterData) return null;\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfter={groupAfter}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfter: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfter: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","decodeValue","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfter","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfter\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfter={groupAfter}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfter: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfter: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.113.0-alpha.7",
3
+ "version": "0.113.1",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -30,9 +30,9 @@
30
30
  "@blaze-cms/core-auth-ui": "^0.102.0",
31
31
  "@blaze-cms/core-errors": "^0.102.0",
32
32
  "@blaze-cms/image-cdn-react": "^0.2.0",
33
- "@blaze-cms/nextjs-components": "^0.113.0-alpha.3",
33
+ "@blaze-cms/nextjs-components": "^0.113.0",
34
34
  "@blaze-cms/setup-ui": "^0.92.0",
35
- "@blaze-cms/utils": "^0.113.0-alpha.1",
35
+ "@blaze-cms/utils": "^0.113.0",
36
36
  "@blaze-react/button": "0.5.19",
37
37
  "@blaze-react/checkboxes": "0.5.31",
38
38
  "@blaze-react/drafteditor": "0.7.0",
@@ -88,5 +88,5 @@
88
88
  "lib/*",
89
89
  "lib-es/*"
90
90
  ],
91
- "gitHead": "3c523f716f756835dab20f888eaae4a7a991180f"
91
+ "gitHead": "132ae7c2cf405ee942f926e99a60d4723a9a68d9"
92
92
  }
@@ -47,12 +47,7 @@ const buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, d
47
47
  const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];
48
48
  if (!propValue) return null;
49
49
  const linkToPublishedContent = getLinkToPublishedContent(key, data);
50
- return [
51
- upperFirst(label) || upperFirst(key),
52
- propValue,
53
- linkToPublishedContent,
54
- modifier
55
- ];
50
+ return [upperFirst(label), propValue, linkToPublishedContent, modifier];
56
51
  });
57
52
  })
58
53
  ).filter(Boolean);
@@ -43,6 +43,11 @@ const SearchFilter = ({
43
43
  const [moreFiltersCollapsed, setMoreFiltersCollapsed] = useState(true);
44
44
  const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
45
45
 
46
+ const handleSubmit = debounce(newValues => {
47
+ const newQuery = buildQuery(newValues, filters);
48
+ handleSearch(newQuery);
49
+ }, 200);
50
+
46
51
  useEffect(
47
52
  () => {
48
53
  if (window && !pageWidth) {
@@ -106,11 +111,6 @@ const SearchFilter = ({
106
111
  dispatch({ newValues, shouldSearch, type: 'update' });
107
112
  };
108
113
 
109
- const handleSubmit = debounce(newValues => {
110
- const newQuery = buildQuery(newValues, filters);
111
- handleSearch(newQuery);
112
- }, 200);
113
-
114
114
  return (
115
115
  <>
116
116
  {isDesktopFormDisplayed || isMobileFormDisplayed ? (
@@ -61,11 +61,14 @@ const SearchFilterContainer = ({
61
61
  variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results
62
62
  skip: !rawQueryStringified
63
63
  });
64
- if (loading || !data) return '';
64
+
65
+ if (loading) return null;
65
66
  if (error) return error.message;
66
- const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } = data;
67
- const shouldDisplayForm = !!filters.length && !loading;
68
- if (!shouldDisplayForm || !filterData) return null;
67
+ if (!filters.length) return null;
68
+
69
+ const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =
70
+ data || {};
71
+
69
72
  const initialFilterValues = getInitialFilterValues(filterData, filters, query);
70
73
 
71
74
  const handleSearch = newQuery => {
@@ -57,4 +57,28 @@ describe('buildLoopPropsContent helper function', () => {
57
57
  it('should return looped data based on limit if is reachable', () => {
58
58
  expect(withLimit).toEqual(mockedResults[3]);
59
59
  });
60
+
61
+ it('should have empty label if label is not set', () => {
62
+ const withNoLabel = buildLoopPropsContent(
63
+ mockedLoopProps,
64
+ [
65
+ {
66
+ bold: false,
67
+ enableLink: true,
68
+ label: '',
69
+ modifier: '',
70
+ prefix: '',
71
+ propertiesToDisplay: ['nestedLoopProp.nestedValue'],
72
+ shouldStrip: true
73
+ }
74
+ ],
75
+ 0,
76
+ mockedData[0]
77
+ );
78
+
79
+ withNoLabel.forEach(([label]) => {
80
+ expect(label).toEqual('');
81
+ });
82
+ expect.hasAssertions();
83
+ });
60
84
  });
@@ -1,5 +1,11 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`SearchFilter container should match snapshot 1`] = `<DocumentFragment />`;
3
+ exports[`SearchFilter container should match snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div>
6
+ Mocked component
7
+ </div>
8
+ </DocumentFragment>
9
+ `;
4
10
 
5
11
  exports[`SearchFilter container should return null if no filters are passed 1`] = `<DocumentFragment />`;