@blaze-cms/react-page-builder 0.124.0-alpha.35 → 0.124.0-alpha.39
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 +33 -0
- package/lib/components/Menu/Menu.js +18 -19
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +6 -7
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/Menu/Menu.js +33 -35
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +2 -2
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/package.json +4 -4
- package/src/components/Menu/Menu.js +17 -20
- package/src/components/SearchFilter/SearchFilterContainer.js +3 -2
- package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +1 -1
- package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,39 @@
|
|
|
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.124.0-alpha.39](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.38...v0.124.0-alpha.39) (2022-07-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* show filters even if no filter values by setting filter values from query ([#3533](https://github.com/thebyte9/blaze/issues/3533)) ([b8a0080](https://github.com/thebyte9/blaze/commit/b8a00804993b49066712dfbb74f20523e8cea764))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.124.0-alpha.37](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.36...v0.124.0-alpha.37) (2022-06-29)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* update image-cdn-react package to add as to preload tag ([#3527](https://github.com/thebyte9/blaze/issues/3527)) ([d7cab87](https://github.com/thebyte9/blaze/commit/d7cab874e824d9b2e99a0d3d5f2c6c48775132e5))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# [0.124.0-alpha.36](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.35...v0.124.0-alpha.36) (2022-06-28)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* make menu responsive using css ([#3526](https://github.com/thebyte9/blaze/issues/3526)) ([e8a7f45](https://github.com/thebyte9/blaze/commit/e8a7f45e22d4e31a106bff1b06ab25775a2a13ce))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
6
39
|
# [0.124.0-alpha.35](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.34...v0.124.0-alpha.35) (2022-06-27)
|
|
7
40
|
|
|
8
41
|
|
|
@@ -25,9 +25,9 @@ exports["default"] = void 0;
|
|
|
25
25
|
|
|
26
26
|
require("core-js/modules/es.array.concat.js");
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
31
31
|
|
|
32
32
|
var _react = _interopRequireWildcard(require("react"));
|
|
33
33
|
|
|
@@ -35,23 +35,23 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
35
35
|
|
|
36
36
|
var _button = _interopRequireDefault(require("@blaze-react/button"));
|
|
37
37
|
|
|
38
|
+
var _classnames2 = _interopRequireDefault(require("classnames"));
|
|
39
|
+
|
|
38
40
|
var _router = require("next/router");
|
|
39
41
|
|
|
40
42
|
var _md = require("react-icons/md");
|
|
41
43
|
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
var _constants = require("../../constants");
|
|
44
|
+
var _nextjsComponents = require("@blaze-cms/nextjs-components");
|
|
45
45
|
|
|
46
46
|
var _MenuContext = _interopRequireDefault(require("./MenuContext"));
|
|
47
47
|
|
|
48
|
-
var _excluded = ["children", "collapse", "modifier", "mobileMenuModifier", "mobileMenuChildrenModifier", "mobileIconAlignment", "mobileButtonModifier", "hamburgerIconModifier", "logoOnMobile", "logoOnDesktop", "logoOnMobileUrl", "logoOnMobileAlt", "logoOnMobileModifier", "logoOnDesktopModifier", "logoOnDesktopAlignment", "closeIconModifier"];
|
|
49
|
-
|
|
50
48
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
51
49
|
|
|
52
50
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
53
51
|
|
|
54
52
|
var Menu = function Menu(_ref) {
|
|
53
|
+
var _classnames;
|
|
54
|
+
|
|
55
55
|
var children = _ref.children,
|
|
56
56
|
collapse = _ref.collapse,
|
|
57
57
|
modifier = _ref.modifier,
|
|
@@ -67,10 +67,8 @@ var Menu = function Menu(_ref) {
|
|
|
67
67
|
logoOnMobileModifier = _ref.logoOnMobileModifier,
|
|
68
68
|
logoOnDesktopModifier = _ref.logoOnDesktopModifier,
|
|
69
69
|
logoOnDesktopAlignment = _ref.logoOnDesktopAlignment,
|
|
70
|
-
closeIconModifier = _ref.closeIconModifier
|
|
71
|
-
rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
70
|
+
closeIconModifier = _ref.closeIconModifier;
|
|
72
71
|
var router = (0, _router.useRouter)();
|
|
73
|
-
var isMobile = (0, _hooks.useCheckMobileScreen)();
|
|
74
72
|
|
|
75
73
|
var _useState = (0, _react.useState)(false),
|
|
76
74
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -87,24 +85,25 @@ var Menu = function Menu(_ref) {
|
|
|
87
85
|
router.events.off('routeChangeStart', handleRouteChange);
|
|
88
86
|
};
|
|
89
87
|
}, [router.events]);
|
|
90
|
-
var
|
|
91
|
-
var
|
|
92
|
-
var shouldDisplayChildren = shouldDisplayCollapsed ? showMobileMenu : true;
|
|
93
|
-
var childrenDesktopModifier = shouldDisplayChildren && !isMobile ? modifier : "".concat(modifier, " ").concat(_constants.HIDDEN);
|
|
94
|
-
var childrenMobileModifier = shouldDisplayChildren && isMobile ? "".concat(mobileMenuChildrenModifier) : " ".concat(_constants.HIDDEN);
|
|
88
|
+
var shouldDisplayChildren = collapse ? showMobileMenu : true;
|
|
89
|
+
var childModifiers = (0, _classnames2["default"])((_classnames = {}, (0, _defineProperty2["default"])(_classnames, mobileMenuChildrenModifier, shouldDisplayChildren), (0, _defineProperty2["default"])(_classnames, modifier, !showMobileMenu), _classnames));
|
|
95
90
|
var isMobileMenuExpanded = showMobileMenu ? "".concat(mobileMenuModifier) : '';
|
|
91
|
+
var menuWrapperClasses = (0, _classnames2["default"])('menu--wrapper', {
|
|
92
|
+
'menu--wrapper--mobile-open': showMobileMenu,
|
|
93
|
+
'menu--wrapper--mobile-closed': collapse && !showMobileMenu
|
|
94
|
+
});
|
|
96
95
|
return /*#__PURE__*/_react["default"].createElement(_MenuContext["default"].Provider, {
|
|
97
96
|
value: {
|
|
98
97
|
showMobileMenu: showMobileMenu
|
|
99
98
|
}
|
|
100
99
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
101
|
-
className:
|
|
100
|
+
className: menuWrapperClasses
|
|
102
101
|
}, collapse && /*#__PURE__*/_react["default"].createElement("div", {
|
|
103
102
|
className: "menu--mobile-wrapper"
|
|
104
103
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
104
|
className: "flex w-screen z-50 justify-".concat(mobileIconAlignment, " ").concat(isMobileMenuExpanded)
|
|
106
105
|
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
107
|
-
className:
|
|
106
|
+
className: "menu--mobile-button ".concat(mobileButtonModifier),
|
|
108
107
|
onClick: function onClick() {
|
|
109
108
|
return setShowMobileMenu(!showMobileMenu);
|
|
110
109
|
}
|
|
@@ -112,7 +111,7 @@ var Menu = function Menu(_ref) {
|
|
|
112
111
|
className: closeIconModifier
|
|
113
112
|
}) : /*#__PURE__*/_react["default"].createElement(_md.MdMenu, {
|
|
114
113
|
className: hamburgerIconModifier
|
|
115
|
-
}))))), logoOnMobile && !showMobileMenu && /*#__PURE__*/_react["default"].createElement(
|
|
114
|
+
}))))), logoOnMobile && !showMobileMenu && /*#__PURE__*/_react["default"].createElement(_nextjsComponents.Link, {
|
|
116
115
|
href: "/"
|
|
117
116
|
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
118
117
|
src: logoOnMobileUrl,
|
|
@@ -121,7 +120,7 @@ var Menu = function Menu(_ref) {
|
|
|
121
120
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
122
121
|
className: "menu--desktop-wrapper"
|
|
123
122
|
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
124
|
-
className:
|
|
123
|
+
className: childModifiers
|
|
125
124
|
}, logoOnDesktop && /*#__PURE__*/_react["default"].createElement("a", {
|
|
126
125
|
href: "/",
|
|
127
126
|
className: ""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","logoOnMobile","logoOnDesktop","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","logoOnDesktopModifier","logoOnDesktopAlignment","closeIconModifier","
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","logoOnMobile","logoOnDesktop","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","logoOnDesktopModifier","logoOnDesktopAlignment","closeIconModifier","router","useRouter","useState","showMobileMenu","setShowMobileMenu","useEffect","handleRouteChange","events","on","off","shouldDisplayChildren","childModifiers","classnames","isMobileMenuExpanded","menuWrapperClasses","propTypes","PropTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Menu/Menu.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport MenuContext from './MenuContext';\n\nconst Menu = ({\n children,\n collapse,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n logoOnMobile,\n logoOnDesktop,\n logoOnMobileUrl,\n logoOnMobileAlt,\n logoOnMobileModifier,\n logoOnDesktopModifier,\n logoOnDesktopAlignment,\n closeIconModifier\n}) => {\n const router = useRouter();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n useEffect(\n () => {\n const handleRouteChange = () => setShowMobileMenu(false);\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n },\n [router.events]\n );\n\n const shouldDisplayChildren = collapse ? showMobileMenu : true;\n\n const childModifiers = classnames({\n [mobileMenuChildrenModifier]: shouldDisplayChildren,\n [modifier]: !showMobileMenu\n });\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n const menuWrapperClasses = classnames('menu--wrapper', {\n 'menu--wrapper--mobile-open': showMobileMenu,\n 'menu--wrapper--mobile-closed': collapse && !showMobileMenu\n });\n\n return (\n <MenuContext.Provider value={{ showMobileMenu }}>\n <div className={menuWrapperClasses}>\n {collapse && (\n <div className=\"menu--mobile-wrapper\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={`menu--mobile-button ${mobileButtonModifier}`}\n onClick={() => setShowMobileMenu(!showMobileMenu)}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n </div>\n </div>\n )}\n {logoOnMobile &&\n !showMobileMenu && (\n <Link href=\"/\">\n <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />\n </Link>\n )}\n\n <div className=\"menu--desktop-wrapper\">\n <ul className={childModifiers}>\n {logoOnDesktop && (\n <a href=\"/\" className=\"\">\n <img\n src={logoOnMobileUrl}\n alt={logoOnMobileAlt}\n className={logoOnDesktopModifier}\n />\n </a>\n )}\n {children}\n </ul>\n </div>\n </div>\n </MenuContext.Provider>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n logoOnMobile: PropTypes.bool.isRequired,\n logoOnDesktop: PropTypes.bool,\n logoOnMobileUrl: PropTypes.string,\n logoOnMobileAlt: PropTypes.string,\n logoOnMobileModifier: PropTypes.string,\n logoOnDesktopModifier: PropTypes.string,\n logoOnDesktopAlignment: PropTypes.string,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n logoOnDesktop: false,\n logoOnMobileUrl: '',\n logoOnMobileAlt: '',\n logoOnMobileModifier: '',\n logoOnDesktopModifier: '',\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n logoOnDesktopAlignment: 'left',\n modifier: '',\n children: []\n};\n\nexport default Menu;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,OAiBP;EAAA;;EAAA,IAhBJC,QAgBI,QAhBJA,QAgBI;EAAA,IAfJC,QAeI,QAfJA,QAeI;EAAA,IAdJC,QAcI,QAdJA,QAcI;EAAA,IAbJC,kBAaI,QAbJA,kBAaI;EAAA,IAZJC,0BAYI,QAZJA,0BAYI;EAAA,IAXJC,mBAWI,QAXJA,mBAWI;EAAA,IAVJC,oBAUI,QAVJA,oBAUI;EAAA,IATJC,qBASI,QATJA,qBASI;EAAA,IARJC,YAQI,QARJA,YAQI;EAAA,IAPJC,aAOI,QAPJA,aAOI;EAAA,IANJC,eAMI,QANJA,eAMI;EAAA,IALJC,eAKI,QALJA,eAKI;EAAA,IAJJC,oBAII,QAJJA,oBAII;EAAA,IAHJC,qBAGI,QAHJA,qBAGI;EAAA,IAFJC,sBAEI,QAFJA,sBAEI;EAAA,IADJC,iBACI,QADJA,iBACI;EACJ,IAAMC,MAAM,GAAG,IAAAC,iBAAA,GAAf;;EACA,gBAA4C,IAAAC,eAAA,EAAS,KAAT,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EAEA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;MAAA,OAAMF,iBAAiB,CAAC,KAAD,CAAvB;IAAA,CAA1B;;IACAJ,MAAM,CAACO,MAAP,CAAcC,EAAd,CAAiB,kBAAjB,EAAqCF,iBAArC;IAEA,OAAO,YAAM;MACXN,MAAM,CAACO,MAAP,CAAcE,GAAd,CAAkB,kBAAlB,EAAsCH,iBAAtC;IACD,CAFD;EAGD,CARH,EASE,CAACN,MAAM,CAACO,MAAR,CATF;EAYA,IAAMG,qBAAqB,GAAGzB,QAAQ,GAAGkB,cAAH,GAAoB,IAA1D;EAEA,IAAMQ,cAAc,GAAG,IAAAC,uBAAA,mEACpBxB,0BADoB,EACSsB,qBADT,iDAEpBxB,QAFoB,EAET,CAACiB,cAFQ,gBAAvB;EAKA,IAAMU,oBAAoB,GAAGV,cAAc,aAAMhB,kBAAN,IAA6B,EAAxE;EACA,IAAM2B,kBAAkB,GAAG,IAAAF,uBAAA,EAAW,eAAX,EAA4B;IACrD,8BAA8BT,cADuB;IAErD,gCAAgClB,QAAQ,IAAI,CAACkB;EAFQ,CAA5B,CAA3B;EAKA,oBACE,gCAAC,uBAAD,CAAa,QAAb;IAAsB,KAAK,EAAE;MAAEA,cAAc,EAAdA;IAAF;EAA7B,gBACE;IAAK,SAAS,EAAEW;EAAhB,GACG7B,QAAQ,iBACP;IAAK,SAAS,EAAC;EAAf,gBACE;IACE,SAAS,uCAAgCI,mBAAhC,cAAuDwB,oBAAvD;EADX,gBAEE,gCAAC,kBAAD;IACE,SAAS,gCAAyBvB,oBAAzB,CADX;IAEE,OAAO,EAAE;MAAA,OAAMc,iBAAiB,CAAC,CAACD,cAAF,CAAvB;IAAA;EAFX,gBAGE,2CACGA,cAAc,gBACb,gCAAC,WAAD;IAAS,SAAS,EAAEJ;EAApB,EADa,gBAGb,gCAAC,UAAD;IAAQ,SAAS,EAAER;EAAnB,EAJJ,CAHF,CAFF,CADF,CAFJ,EAmBGC,YAAY,IACX,CAACW,cADF,iBAEG,gCAAC,sBAAD;IAAM,IAAI,EAAC;EAAX,gBACE;IAAK,GAAG,EAAET,eAAV;IAA2B,GAAG,EAAEC,eAAhC;IAAiD,SAAS,EAAEC;EAA5D,EADF,CArBN,eA0BE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAI,SAAS,EAAEe;EAAf,GACGlB,aAAa,iBACZ;IAAG,IAAI,EAAC,GAAR;IAAY,SAAS,EAAC;EAAtB,gBACE;IACE,GAAG,EAAEC,eADP;IAEE,GAAG,EAAEC,eAFP;IAGE,SAAS,EAAEE;EAHb,EADF,CAFJ,EAUGb,QAVH,CADF,CA1BF,CADF,CADF;AA6CD,CA3FD;;AA6FAD,IAAI,CAACgC,SAAL,GAAiB;EACf9B,QAAQ,EAAE+B,qBAAA,CAAUC,IAAV,CAAeC,UADV;EAEf1B,YAAY,EAAEwB,qBAAA,CAAUC,IAAV,CAAeC,UAFd;EAGfzB,aAAa,EAAEuB,qBAAA,CAAUC,IAHV;EAIfvB,eAAe,EAAEsB,qBAAA,CAAUG,MAJZ;EAKfxB,eAAe,EAAEqB,qBAAA,CAAUG,MALZ;EAMfvB,oBAAoB,EAAEoB,qBAAA,CAAUG,MANjB;EAOftB,qBAAqB,EAAEmB,qBAAA,CAAUG,MAPlB;EAQfrB,sBAAsB,EAAEkB,qBAAA,CAAUG,MARnB;EASf5B,qBAAqB,EAAEyB,qBAAA,CAAUG,MATlB;EAUfpB,iBAAiB,EAAEiB,qBAAA,CAAUG,MAVd;EAWf7B,oBAAoB,EAAE0B,qBAAA,CAAUG,MAXjB;EAYfhC,kBAAkB,EAAE6B,qBAAA,CAAUG,MAZf;EAaf/B,0BAA0B,EAAE4B,qBAAA,CAAUG,MAbvB;EAcfjC,QAAQ,EAAE8B,qBAAA,CAAUG,MAdL;EAef9B,mBAAmB,EAAE2B,qBAAA,CAAUG,MAfhB;EAgBfnC,QAAQ,EAAEgC,qBAAA,CAAUI,SAAV,CAAoB,CAACJ,qBAAA,CAAUK,OAAV,CAAkBL,qBAAA,CAAUM,IAA5B,CAAD,EAAoCN,qBAAA,CAAUM,IAA9C,CAApB;AAhBK,CAAjB;AAmBAvC,IAAI,CAACwC,YAAL,GAAoB;EAClB9B,aAAa,EAAE,KADG;EAElBC,eAAe,EAAE,EAFC;EAGlBC,eAAe,EAAE,EAHC;EAIlBC,oBAAoB,EAAE,EAJJ;EAKlBC,qBAAqB,EAAE,EALL;EAMlBN,qBAAqB,EAAE,EANL;EAOlBQ,iBAAiB,EAAE,EAPD;EAQlBT,oBAAoB,EAAE,EARJ;EASlBD,mBAAmB,EAAE,EATH;EAUlBF,kBAAkB,EAAE,EAVF;EAWlBC,0BAA0B,EAAE,EAXV;EAYlBU,sBAAsB,EAAE,MAZN;EAalBZ,QAAQ,EAAE,EAbQ;EAclBF,QAAQ,EAAE;AAdQ,CAApB;eAiBeD,I"}
|
|
@@ -141,13 +141,6 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
141
141
|
displaySearchFilter = _useState4[0],
|
|
142
142
|
setDisplaySearchFilter = _useState4[1];
|
|
143
143
|
|
|
144
|
-
var _useReducer = (0, _react.useReducer)(reducer, null),
|
|
145
|
-
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
146
|
-
filterValues = _useReducer2[0],
|
|
147
|
-
dispatch = _useReducer2[1];
|
|
148
|
-
|
|
149
|
-
var hasUrl = !!url;
|
|
150
|
-
|
|
151
144
|
var _parseUrl = (0, _queryString.parseUrl)(asPath),
|
|
152
145
|
currentUrl = _parseUrl.url,
|
|
153
146
|
_parseUrl$query = _parseUrl.query,
|
|
@@ -155,6 +148,12 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
155
148
|
sortby = _parseUrl$query.sortby,
|
|
156
149
|
query = _parseUrl.query;
|
|
157
150
|
|
|
151
|
+
var _useReducer = (0, _react.useReducer)(reducer, query),
|
|
152
|
+
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
153
|
+
filterValues = _useReducer2[0],
|
|
154
|
+
dispatch = _useReducer2[1];
|
|
155
|
+
|
|
156
|
+
var hasUrl = !!url;
|
|
158
157
|
var sortValues = sort && sortby ? (0, _queryString.stringify)({
|
|
159
158
|
sort: sort,
|
|
160
159
|
sortby: sortby
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","useRouter","asPath","searchFilterRef","useRef","useState","key","setKey","displaySearchFilter","setDisplaySearchFilter","useReducer","filterValues","dispatch","hasUrl","parseUrl","currentUrl","query","sort","sortby","sortValues","stringify","baseQuery","getSearchPublishedContent","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","getEntityData","docType","filtersQuery","buildFiltersQuery","rawQueryStringified","buildRawQueryStringified","useQuery","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","initialFilterValues","getInitialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","buildNewQuery","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps","withTitle"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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 SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [filterValues, dispatch] = useReducer(reducer, null);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (!filterValues && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\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 groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","useRouter","asPath","searchFilterRef","useRef","useState","key","setKey","displaySearchFilter","setDisplaySearchFilter","parseUrl","currentUrl","query","sort","sortby","useReducer","filterValues","dispatch","hasUrl","sortValues","stringify","baseQuery","getSearchPublishedContent","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","getEntityData","docType","filtersQuery","buildFiltersQuery","rawQueryStringified","buildRawQueryStringified","useQuery","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","initialFilterValues","getInitialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","buildNewQuery","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps","withTitle"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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 SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (!filterValues && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\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 groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
|
|
@@ -1,37 +1,31 @@
|
|
|
1
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
-
const _excluded = ["children", "collapse", "modifier", "mobileMenuModifier", "mobileMenuChildrenModifier", "mobileIconAlignment", "mobileButtonModifier", "hamburgerIconModifier", "logoOnMobile", "logoOnDesktop", "logoOnMobileUrl", "logoOnMobileAlt", "logoOnMobileModifier", "logoOnDesktopModifier", "logoOnDesktopAlignment", "closeIconModifier"];
|
|
3
1
|
import React, { useState, useEffect } from 'react';
|
|
4
2
|
import PropTypes from 'prop-types';
|
|
5
3
|
import BlazeButton from '@blaze-react/button';
|
|
4
|
+
import classnames from 'classnames';
|
|
6
5
|
import { useRouter } from 'next/router';
|
|
7
6
|
import { MdMenu, MdClose } from 'react-icons/md';
|
|
8
|
-
import {
|
|
9
|
-
import { HIDDEN } from '../../constants';
|
|
7
|
+
import { Link } from '@blaze-cms/nextjs-components';
|
|
10
8
|
import MenuContext from './MenuContext';
|
|
11
9
|
|
|
12
|
-
const Menu =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} = _ref,
|
|
31
|
-
rest = _objectWithoutProperties(_ref, _excluded);
|
|
32
|
-
|
|
10
|
+
const Menu = ({
|
|
11
|
+
children,
|
|
12
|
+
collapse,
|
|
13
|
+
modifier,
|
|
14
|
+
mobileMenuModifier,
|
|
15
|
+
mobileMenuChildrenModifier,
|
|
16
|
+
mobileIconAlignment,
|
|
17
|
+
mobileButtonModifier,
|
|
18
|
+
hamburgerIconModifier,
|
|
19
|
+
logoOnMobile,
|
|
20
|
+
logoOnDesktop,
|
|
21
|
+
logoOnMobileUrl,
|
|
22
|
+
logoOnMobileAlt,
|
|
23
|
+
logoOnMobileModifier,
|
|
24
|
+
logoOnDesktopModifier,
|
|
25
|
+
logoOnDesktopAlignment,
|
|
26
|
+
closeIconModifier
|
|
27
|
+
}) => {
|
|
33
28
|
const router = useRouter();
|
|
34
|
-
const isMobile = useCheckMobileScreen();
|
|
35
29
|
const [showMobileMenu, setShowMobileMenu] = useState(false);
|
|
36
30
|
useEffect(() => {
|
|
37
31
|
const handleRouteChange = () => setShowMobileMenu(false);
|
|
@@ -41,30 +35,34 @@ const Menu = _ref => {
|
|
|
41
35
|
router.events.off('routeChangeStart', handleRouteChange);
|
|
42
36
|
};
|
|
43
37
|
}, [router.events]);
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
const shouldDisplayChildren = collapse ? showMobileMenu : true;
|
|
39
|
+
const childModifiers = classnames({
|
|
40
|
+
[mobileMenuChildrenModifier]: shouldDisplayChildren,
|
|
41
|
+
[modifier]: !showMobileMenu
|
|
42
|
+
});
|
|
49
43
|
const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';
|
|
44
|
+
const menuWrapperClasses = classnames('menu--wrapper', {
|
|
45
|
+
'menu--wrapper--mobile-open': showMobileMenu,
|
|
46
|
+
'menu--wrapper--mobile-closed': collapse && !showMobileMenu
|
|
47
|
+
});
|
|
50
48
|
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
51
49
|
value: {
|
|
52
50
|
showMobileMenu
|
|
53
51
|
}
|
|
54
52
|
}, /*#__PURE__*/React.createElement("div", {
|
|
55
|
-
className:
|
|
53
|
+
className: menuWrapperClasses
|
|
56
54
|
}, collapse && /*#__PURE__*/React.createElement("div", {
|
|
57
55
|
className: "menu--mobile-wrapper"
|
|
58
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
59
57
|
className: `flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`
|
|
60
58
|
}, /*#__PURE__*/React.createElement(BlazeButton, {
|
|
61
|
-
className:
|
|
59
|
+
className: `menu--mobile-button ${mobileButtonModifier}`,
|
|
62
60
|
onClick: () => setShowMobileMenu(!showMobileMenu)
|
|
63
61
|
}, /*#__PURE__*/React.createElement("i", null, showMobileMenu ? /*#__PURE__*/React.createElement(MdClose, {
|
|
64
62
|
className: closeIconModifier
|
|
65
63
|
}) : /*#__PURE__*/React.createElement(MdMenu, {
|
|
66
64
|
className: hamburgerIconModifier
|
|
67
|
-
}))))), logoOnMobile && !showMobileMenu && /*#__PURE__*/React.createElement(
|
|
65
|
+
}))))), logoOnMobile && !showMobileMenu && /*#__PURE__*/React.createElement(Link, {
|
|
68
66
|
href: "/"
|
|
69
67
|
}, /*#__PURE__*/React.createElement("img", {
|
|
70
68
|
src: logoOnMobileUrl,
|
|
@@ -73,7 +71,7 @@ const Menu = _ref => {
|
|
|
73
71
|
})), /*#__PURE__*/React.createElement("div", {
|
|
74
72
|
className: "menu--desktop-wrapper"
|
|
75
73
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
76
|
-
className:
|
|
74
|
+
className: childModifiers
|
|
77
75
|
}, logoOnDesktop && /*#__PURE__*/React.createElement("a", {
|
|
78
76
|
href: "/",
|
|
79
77
|
className: ""
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["React","useState","useEffect","PropTypes","BlazeButton","useRouter","MdMenu","MdClose","
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["React","useState","useEffect","PropTypes","BlazeButton","classnames","useRouter","MdMenu","MdClose","Link","MenuContext","Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","logoOnMobile","logoOnDesktop","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","logoOnDesktopModifier","logoOnDesktopAlignment","closeIconModifier","router","showMobileMenu","setShowMobileMenu","handleRouteChange","events","on","off","shouldDisplayChildren","childModifiers","isMobileMenuExpanded","menuWrapperClasses","propTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Menu/Menu.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport classnames from 'classnames';\nimport { useRouter } from 'next/router';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { Link } from '@blaze-cms/nextjs-components';\nimport MenuContext from './MenuContext';\n\nconst Menu = ({\n children,\n collapse,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n logoOnMobile,\n logoOnDesktop,\n logoOnMobileUrl,\n logoOnMobileAlt,\n logoOnMobileModifier,\n logoOnDesktopModifier,\n logoOnDesktopAlignment,\n closeIconModifier\n}) => {\n const router = useRouter();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n useEffect(\n () => {\n const handleRouteChange = () => setShowMobileMenu(false);\n router.events.on('routeChangeStart', handleRouteChange);\n\n return () => {\n router.events.off('routeChangeStart', handleRouteChange);\n };\n },\n [router.events]\n );\n\n const shouldDisplayChildren = collapse ? showMobileMenu : true;\n\n const childModifiers = classnames({\n [mobileMenuChildrenModifier]: shouldDisplayChildren,\n [modifier]: !showMobileMenu\n });\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n const menuWrapperClasses = classnames('menu--wrapper', {\n 'menu--wrapper--mobile-open': showMobileMenu,\n 'menu--wrapper--mobile-closed': collapse && !showMobileMenu\n });\n\n return (\n <MenuContext.Provider value={{ showMobileMenu }}>\n <div className={menuWrapperClasses}>\n {collapse && (\n <div className=\"menu--mobile-wrapper\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={`menu--mobile-button ${mobileButtonModifier}`}\n onClick={() => setShowMobileMenu(!showMobileMenu)}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n </div>\n </div>\n )}\n {logoOnMobile &&\n !showMobileMenu && (\n <Link href=\"/\">\n <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />\n </Link>\n )}\n\n <div className=\"menu--desktop-wrapper\">\n <ul className={childModifiers}>\n {logoOnDesktop && (\n <a href=\"/\" className=\"\">\n <img\n src={logoOnMobileUrl}\n alt={logoOnMobileAlt}\n className={logoOnDesktopModifier}\n />\n </a>\n )}\n {children}\n </ul>\n </div>\n </div>\n </MenuContext.Provider>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n logoOnMobile: PropTypes.bool.isRequired,\n logoOnDesktop: PropTypes.bool,\n logoOnMobileUrl: PropTypes.string,\n logoOnMobileAlt: PropTypes.string,\n logoOnMobileModifier: PropTypes.string,\n logoOnDesktopModifier: PropTypes.string,\n logoOnDesktopAlignment: PropTypes.string,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n logoOnDesktop: false,\n logoOnMobileUrl: '',\n logoOnMobileAlt: '',\n logoOnMobileModifier: '',\n logoOnDesktopModifier: '',\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n logoOnDesktopAlignment: 'left',\n modifier: '',\n children: []\n};\n\nexport default Menu;\n"],"mappings":"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"}
|
|
@@ -64,8 +64,6 @@ const SearchFilterContainer = ({
|
|
|
64
64
|
const searchFilterRef = useRef(null);
|
|
65
65
|
const [key, setKey] = useState(`filter-${name}`);
|
|
66
66
|
const [displaySearchFilter, setDisplaySearchFilter] = useState(false);
|
|
67
|
-
const [filterValues, dispatch] = useReducer(reducer, null);
|
|
68
|
-
const hasUrl = !!url;
|
|
69
67
|
const {
|
|
70
68
|
url: currentUrl,
|
|
71
69
|
query: {
|
|
@@ -74,6 +72,8 @@ const SearchFilterContainer = ({
|
|
|
74
72
|
},
|
|
75
73
|
query
|
|
76
74
|
} = parseUrl(asPath);
|
|
75
|
+
const [filterValues, dispatch] = useReducer(reducer, query);
|
|
76
|
+
const hasUrl = !!url;
|
|
77
77
|
const sortValues = sort && sortby ? stringify({
|
|
78
78
|
sort,
|
|
79
79
|
sortby
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilterContainer.js","names":["React","useState","useRef","useReducer","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","buildFiltersQuery","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","filterValues","dispatch","hasUrl","currentUrl","query","sort","sortby","sortValues","baseQuery","checkboxSelectValues","rangeValues","forEach","propsToDisplay","includes","push","docType","filtersQuery","rawQueryStringified","data","error","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"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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 SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [filterValues, dispatch] = useReducer(reducer, null);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (!filterValues && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\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 groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilterContainer.js","names":["React","useState","useRef","useReducer","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","buildFiltersQuery","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","checkboxSelectValues","rangeValues","forEach","propsToDisplay","includes","push","docType","filtersQuery","rawQueryStringified","data","error","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"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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 SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (!filterValues && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\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 groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,MAA1B,EAAkCC,UAAlC,QAAoD,OAApD;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,cAApC;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,SAASC,SAAT,QAA0B,WAA1B;AACA,SAASC,yBAAT,QAA0C,yBAA1C;AACA,SACEC,aADF,EAEEC,wBAFF,EAGEC,sBAHF,EAIEC,iBAJF,QAKO,WALP;AAMA,SAASC,aAAT,QAA8B,eAA9B;AACA,SAASC,WAAT,EAAsBC,KAAtB,EAA6BC,eAA7B,QAAoD,aAApD;AACA,SAASC,aAAT,QAA8B,iBAA9B;;AAEA,MAAMC,OAAO,GAAG,CAACC,KAAD,EAAQC,MAAR,KAAmB;EACjC,MAAM;IAAEC,SAAF;IAAaC,IAAb;IAAmBC,YAAY,GAAG;EAAlC,IAA2CH,MAAjD;;EAEA,QAAQE,IAAR;IACE,KAAK,QAAL;MACE,qDAAYH,KAAZ,GAAsBE,SAAtB;QAAiCE;MAAjC;;IACF,KAAK,aAAL;MACE,uCAAYJ,KAAZ;QAAmBI,YAAY,EAAE;MAAjC;;IACF,KAAK,OAAL;MACE,uCAAYF,SAAZ;QAAuBE;MAAvB;;IACF;MACE,MAAM,IAAIC,KAAJ,EAAN;EARJ;AAUD,CAbD;;AAeA,MAAMC,qBAAqB,GAAG,CAAC;EAC7BC,MAD6B;EAE7BC,GAF6B;EAG7BC,OAH6B;EAI7BC,IAJ6B;EAK7BC,uBAL6B;EAM7BC,gBAN6B;EAO7BC,iBAP6B;EAQ7BC,QAR6B;EAS7BC,gBAT6B;EAU7BC;AAV6B,CAAD,KAWxB;EACJ,MAAMC,MAAM,GAAGnC,SAAS,EAAxB;EACA,MAAM;IAAEoC;EAAF,IAAaD,MAAnB;EACA,MAAME,eAAe,GAAGvC,MAAM,CAAC,IAAD,CAA9B;EACA,MAAM,CAACwC,GAAD,EAAMC,MAAN,IAAgB1C,QAAQ,CAAE,UAAS+B,IAAK,EAAhB,CAA9B;EACA,MAAM,CAACY,mBAAD,EAAsBC,sBAAtB,IAAgD5C,QAAQ,CAAC,KAAD,CAA9D;EACA,MAAM;IACJ6B,GAAG,EAAEgB,UADD;IAEJC,KAAK,EAAE;MAAEC,IAAF;MAAQC;IAAR,CAFH;IAGJF;EAHI,IAIFxC,QAAQ,CAACiC,MAAD,CAJZ;EAKA,MAAM,CAACU,YAAD,EAAeC,QAAf,IAA2BhD,UAAU,CAACkB,OAAD,EAAU0B,KAAV,CAA3C;EACA,MAAMK,MAAM,GAAG,CAAC,CAACtB,GAAjB;EAEA,MAAMuB,UAAU,GAAGL,IAAI,IAAIC,MAAR,GAAiBzC,SAAS,CAAC;IAAEwC,IAAF;IAAQC;EAAR,CAAD,CAA1B,GAA+C,EAAlE;EACA,MAAMK,SAAS,GAAGD,UAAU,GAAI,GAAEP,UAAW,IAAGO,UAAW,EAA/B,GAAmCP,UAA/D;EAEA,MAAMvB,MAAM,GAAGZ,yBAAyB,CAACM,WAAD,CAAxC;EACA,MAAMsC,oBAAoB,GAAG,EAA7B;EACA,MAAMC,WAAW,GAAG,EAApB;EAEAzB,OAAO,CAAC0B,OAAR,CAAgB,CAAC;IAAEhC,IAAF;IAAQiC;EAAR,CAAD,KAA8B;IAC5C,IAAIvC,eAAe,CAACwC,QAAhB,CAAyBlC,IAAzB,CAAJ,EAAoC;MAClC8B,oBAAoB,CAACK,IAArB,CAA0BF,cAAc,CAAC,CAAD,CAAxC;IACD,CAFD,MAEO,IAAIjC,IAAI,KAAKP,KAAb,EAAoB;MACzBsC,WAAW,CAACI,IAAZ,CAAiB,GAAGF,cAApB;IACD;EACF,CAND;EAQA,MAAM;IAAEG;EAAF,IAAc7C,aAAa,CAACa,MAAD,CAAjC;EAEA,MAAMiC,YAAY,GAAGxB,gBAAgB,GACjCvB,iBAAiB,CAACmC,YAAY,IAAIH,KAAjB,EAAwBX,QAAxB,EAAkCC,gBAAlC,CADgB,GAEjC,EAFJ;EAIA,MAAM0B,mBAAmB,GAAGlD,wBAAwB,CAClD0C,oBADkD,EAElDC,WAFkD,EAGlDK,OAHkD,EAIlDC,YAJkD,CAApD;EAOA,MAAM;IAAEE,IAAF;IAAQC;EAAR,IAAkB5D,QAAQ,CAACkB,MAAD,EAAS;IACvC2C,SAAS,EAAE;MAAEH,mBAAF;MAAuBI,KAAK,EAAE;IAA9B,CAD4B;IACO;IAC9CC,IAAI,EAAE,CAACL;EAFgC,CAAT,CAAhC;EAKA,IAAIE,KAAJ,EAAW,OAAOA,KAAK,CAACI,OAAb;EACX,IAAI,CAACtC,OAAO,CAACuC,MAAb,EAAqB,OAAO,IAAP;EAErB,MAAM;IAAEC,sBAAsB,EAAE;MAAEC,UAAU,EAAE;QAAEC,YAAY,EAAEC;MAAhB,IAA+B;IAA7C,IAAoD;EAA9E,IACJV,IAAI,IAAI,EADV;;EAGA,IAAI,CAACd,YAAD,IAAiBwB,UAArB,EAAiC;IAC/B,MAAMC,mBAAmB,GAAG7D,sBAAsB,CAAC4D,UAAD,EAAa3C,OAAb,EAAsBgB,KAAtB,CAAlD;IACAI,QAAQ,CAAC;MAAE3B,SAAS,EAAEmD,mBAAb;MAAkCjD,YAAY,EAAE,KAAhD;MAAuDD,IAAI,EAAE;IAA7D,CAAD,CAAR;EACD;;EAED,MAAMmD,YAAY,GAAGC,QAAQ,IAAI;IAC/BhC,sBAAsB,CAAC,KAAD,CAAtB;;IAEA,IAAI,CAACgC,QAAL,EAAe;MACbC,iBAAiB;MACjB,OAAOvC,MAAM,CAACqB,IAAP,CAAY,WAAZ,EAAyBN,SAAzB,EAAoC;QAAEyB,OAAO,EAAE,CAAC3B,MAAZ;QAAoB4B,MAAM,EAAE;MAA5B,CAApC,EAAyEC,IAAzE,CAA8E,MAAM;QACzFtC,MAAM,CAAE,UAASX,IAAK,IAAGkD,IAAI,CAACC,GAAL,EAAW,EAA9B,CAAN,CADyF,CACjD;MACzC,CAFM,CAAP;IAGD;;IACD,MAAMC,MAAM,GAAGxE,aAAa,CAACkB,GAAD,EAAMgB,UAAN,EAAkB+B,QAAlB,EAA4BxB,UAA5B,CAA5B;IACAyB,iBAAiB;IACjB,OAAOvC,MAAM,CAACqB,IAAP,CAAY,WAAZ,EAAyBwB,MAAzB,EAAiC;MAAEL,OAAO,EAAE,CAAC3B,MAAZ;MAAoB4B,MAAM,EAAE;IAA5B,CAAjC,CAAP;EACD,CAZD;;EAcA,MAAMF,iBAAiB,GAAG,MAAM;IAC9B,MAAM,CAACO,IAAD,IAASC,QAAQ,CAACC,sBAAT,CAAgC,UAAhC,CAAf;IACA,MAAMC,uBAAuB,GAAG,CAACpC,MAAD,IAAWiC,IAA3C;;IAEA,IAAIG,uBAAJ,EAA6B;MAC3BC,MAAM,CAACC,QAAP,CAAgB;QACdC,IAAI,EAAE,CADQ;QAEdC,GAAG,EAAEH,MAAM,CAACI,WAAP,GAAqBzE,aAArB,GAAqCiE,IAAI,CAACS,qBAAL,GAA6BF;MAFzD,CAAhB;IAID,CALD,MAKO;MACLH,MAAM,CAACC,QAAP,CAAgB,CAAhB,EAAmB,CAAnB;IACD;EACF,CAZD;;EAaA,IAAI,CAACxC,YAAL,EAAmB,OAAO,EAAP;EAEnB,oBACE,oBAAC,YAAD;IACE,GAAG,EAAER,GADP;IAEE,iBAAiB,EAAES,QAFrB;IAGE,eAAe,EAAEV,eAHnB;IAIE,IAAI,EAAEiC,UAJR;IAKE,OAAO,EAAE3C,OALX;IAME,MAAM,EAAEqB,MANV;IAOE,MAAM,EAAEvB,MAPV;IAQE,YAAY,EAAE+C,YARhB;IASE,YAAY,EAAE1B,YAThB;IAUE,IAAI,EAAElB,IAVR;IAWE,uBAAuB,EAAEC,uBAX3B;IAYE,mBAAmB,EAAEW,mBAZvB;IAaE,sBAAsB,EAAEC,sBAb1B;IAcE,gBAAgB,EAAEX,gBAdpB;IAeE,iBAAiB,EAAEC;EAfrB,EADF;AAmBD,CArHD;;AAuHAP,qBAAqB,CAACmE,SAAtB,GAAkC;EAChClE,MAAM,EAAEvB,SAAS,CAAC0F,MADc;EAEhClE,GAAG,EAAExB,SAAS,CAAC0F,MAFiB;EAGhCjE,OAAO,EAAEzB,SAAS,CAAC2F,KAHa;EAIhCjE,IAAI,EAAE1B,SAAS,CAAC0F,MAAV,CAAiBE,UAJS;EAKhCjE,uBAAuB,EAAE3B,SAAS,CAAC6F,IALH;EAMhCjE,gBAAgB,EAAE5B,SAAS,CAAC8F,MANI;EAOhCjE,iBAAiB,EAAE7B,SAAS,CAAC8F,MAPG;EAQhChE,QAAQ,EAAE9B,SAAS,CAAC2F,KARY;EAShC5D,gBAAgB,EAAE/B,SAAS,CAAC2F,KATI;EAUhC3D,gBAAgB,EAAEhC,SAAS,CAAC6F;AAVI,CAAlC;AAaAvE,qBAAqB,CAACyE,YAAtB,GAAqC;EACnCvE,GAAG,EAAE,IAD8B;EAEnCC,OAAO,EAAE,EAF0B;EAGnCF,MAAM,EAAE,EAH2B;EAInCI,uBAAuB,EAAE,IAJU;EAKnCC,gBAAgB,EAAE,CALiB;EAMnCC,iBAAiB,EAAE,CANgB;EAOnCC,QAAQ,EAAE,EAPyB;EAQnCC,gBAAgB,EAAE,EARiB;EASnCC,gBAAgB,EAAE;AATiB,CAArC;AAYA,eAAe5B,SAAS,CAACkB,qBAAD,CAAxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.39",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@blaze-cms/core-auth-ui": "^0.119.0",
|
|
31
31
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
32
|
-
"@blaze-cms/image-cdn-react": "0.3.0-alpha.
|
|
33
|
-
"@blaze-cms/nextjs-components": "^0.124.0-alpha.
|
|
32
|
+
"@blaze-cms/image-cdn-react": "0.3.0-alpha.3",
|
|
33
|
+
"@blaze-cms/nextjs-components": "^0.124.0-alpha.37",
|
|
34
34
|
"@blaze-cms/plugin-search-ui": "^0.124.0-alpha.21",
|
|
35
35
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
36
36
|
"@blaze-cms/utils": "^0.118.0",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"lib/*",
|
|
86
86
|
"lib-es/*"
|
|
87
87
|
],
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "26892b521a22b5225b74bd9c35e4cb6ed5922584"
|
|
89
89
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import BlazeButton from '@blaze-react/button';
|
|
4
|
+
import classnames from 'classnames';
|
|
4
5
|
import { useRouter } from 'next/router';
|
|
5
6
|
import { MdMenu, MdClose } from 'react-icons/md';
|
|
6
|
-
import {
|
|
7
|
-
import { HIDDEN } from '../../constants';
|
|
7
|
+
import { Link } from '@blaze-cms/nextjs-components';
|
|
8
8
|
import MenuContext from './MenuContext';
|
|
9
9
|
|
|
10
10
|
const Menu = ({
|
|
@@ -23,11 +23,9 @@ const Menu = ({
|
|
|
23
23
|
logoOnMobileModifier,
|
|
24
24
|
logoOnDesktopModifier,
|
|
25
25
|
logoOnDesktopAlignment,
|
|
26
|
-
closeIconModifier
|
|
27
|
-
...rest
|
|
26
|
+
closeIconModifier
|
|
28
27
|
}) => {
|
|
29
28
|
const router = useRouter();
|
|
30
|
-
const isMobile = useCheckMobileScreen();
|
|
31
29
|
const [showMobileMenu, setShowMobileMenu] = useState(false);
|
|
32
30
|
|
|
33
31
|
useEffect(
|
|
@@ -42,29 +40,28 @@ const Menu = ({
|
|
|
42
40
|
[router.events]
|
|
43
41
|
);
|
|
44
42
|
|
|
45
|
-
const
|
|
43
|
+
const shouldDisplayChildren = collapse ? showMobileMenu : true;
|
|
46
44
|
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const childrenDesktopModifier =
|
|
52
|
-
shouldDisplayChildren && !isMobile ? modifier : `${modifier} ${HIDDEN}`;
|
|
53
|
-
|
|
54
|
-
const childrenMobileModifier =
|
|
55
|
-
shouldDisplayChildren && isMobile ? `${mobileMenuChildrenModifier}` : ` ${HIDDEN}`;
|
|
45
|
+
const childModifiers = classnames({
|
|
46
|
+
[mobileMenuChildrenModifier]: shouldDisplayChildren,
|
|
47
|
+
[modifier]: !showMobileMenu
|
|
48
|
+
});
|
|
56
49
|
|
|
57
50
|
const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';
|
|
51
|
+
const menuWrapperClasses = classnames('menu--wrapper', {
|
|
52
|
+
'menu--wrapper--mobile-open': showMobileMenu,
|
|
53
|
+
'menu--wrapper--mobile-closed': collapse && !showMobileMenu
|
|
54
|
+
});
|
|
58
55
|
|
|
59
56
|
return (
|
|
60
57
|
<MenuContext.Provider value={{ showMobileMenu }}>
|
|
61
|
-
<div className=
|
|
58
|
+
<div className={menuWrapperClasses}>
|
|
62
59
|
{collapse && (
|
|
63
60
|
<div className="menu--mobile-wrapper">
|
|
64
61
|
<div
|
|
65
62
|
className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>
|
|
66
63
|
<BlazeButton
|
|
67
|
-
className={
|
|
64
|
+
className={`menu--mobile-button ${mobileButtonModifier}`}
|
|
68
65
|
onClick={() => setShowMobileMenu(!showMobileMenu)}>
|
|
69
66
|
<i>
|
|
70
67
|
{showMobileMenu ? (
|
|
@@ -79,13 +76,13 @@ const Menu = ({
|
|
|
79
76
|
)}
|
|
80
77
|
{logoOnMobile &&
|
|
81
78
|
!showMobileMenu && (
|
|
82
|
-
<
|
|
79
|
+
<Link href="/">
|
|
83
80
|
<img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />
|
|
84
|
-
</
|
|
81
|
+
</Link>
|
|
85
82
|
)}
|
|
86
83
|
|
|
87
84
|
<div className="menu--desktop-wrapper">
|
|
88
|
-
<ul className={
|
|
85
|
+
<ul className={childModifiers}>
|
|
89
86
|
{logoOnDesktop && (
|
|
90
87
|
<a href="/" className="">
|
|
91
88
|
<img
|
|
@@ -48,13 +48,14 @@ const SearchFilterContainer = ({
|
|
|
48
48
|
const searchFilterRef = useRef(null);
|
|
49
49
|
const [key, setKey] = useState(`filter-${name}`);
|
|
50
50
|
const [displaySearchFilter, setDisplaySearchFilter] = useState(false);
|
|
51
|
-
const [filterValues, dispatch] = useReducer(reducer, null);
|
|
52
|
-
const hasUrl = !!url;
|
|
53
51
|
const {
|
|
54
52
|
url: currentUrl,
|
|
55
53
|
query: { sort, sortby },
|
|
56
54
|
query
|
|
57
55
|
} = parseUrl(asPath);
|
|
56
|
+
const [filterValues, dispatch] = useReducer(reducer, query);
|
|
57
|
+
const hasUrl = !!url;
|
|
58
|
+
|
|
58
59
|
const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';
|
|
59
60
|
const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;
|
|
60
61
|
|
package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`SearchFilter container should match snapshot 1`] =
|
|
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 />`;
|