@blaze-cms/react-page-builder 0.123.0-alpha.12 → 0.123.0-alpha.15
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 +27 -0
- package/lib/components/SearchContent/index.js +17 -4
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +13 -4
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/SearchContent/index.js +13 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
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.123.0-alpha.15](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.14...v0.123.0-alpha.15) (2022-03-30)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.123.0-alpha.14](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.13...v0.123.0-alpha.14) (2022-03-30)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* hide error if query fails ([fdfbc41](https://github.com/thebyte9/blaze/commit/fdfbc417b767ea68a20fb300f453500f0ab11098))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [0.123.0-alpha.13](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.12...v0.123.0-alpha.13) (2022-03-30)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
# [0.123.0-alpha.12](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.9...v0.123.0-alpha.12) (2022-03-30)
|
|
7
34
|
|
|
8
35
|
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
@@ -35,7 +35,9 @@ require("core-js/modules/es.array.map.js");
|
|
|
35
35
|
|
|
36
36
|
require("core-js/modules/es.function.name.js");
|
|
37
37
|
|
|
38
|
-
require("core-js/modules/es.
|
|
38
|
+
require("core-js/modules/es.array.includes.js");
|
|
39
|
+
|
|
40
|
+
require("core-js/modules/es.string.includes.js");
|
|
39
41
|
|
|
40
42
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
41
43
|
|
|
@@ -114,13 +116,19 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
114
116
|
data = _useQuery.data;
|
|
115
117
|
|
|
116
118
|
if (loading) return null;
|
|
117
|
-
if (error) return
|
|
119
|
+
if (error) return null;
|
|
118
120
|
|
|
119
121
|
var handleClick = function handleClick(e, url) {
|
|
120
122
|
e.preventDefault();
|
|
121
123
|
router.push(url);
|
|
122
124
|
};
|
|
123
125
|
|
|
126
|
+
var handleKeyPress = function handleKeyPress(e, url) {
|
|
127
|
+
if (e.key === 'Enter') {
|
|
128
|
+
router.push(url);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
124
132
|
var renderResults = function renderResults() {
|
|
125
133
|
// eslint-disable-next-line no-undef
|
|
126
134
|
var _data$searchPublished = data === null || data === void 0 ? void 0 : data.searchPublishedContent,
|
|
@@ -131,11 +139,14 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
131
139
|
var name = _ref2.name,
|
|
132
140
|
url = _ref2.url;
|
|
133
141
|
|
|
134
|
-
if (name.
|
|
142
|
+
if (name.includes(searchTerm)) {
|
|
135
143
|
return /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
|
|
136
144
|
href: url,
|
|
137
145
|
onClick: function onClick(e) {
|
|
138
146
|
return handleClick(e, url);
|
|
147
|
+
},
|
|
148
|
+
onKeyPress: function onKeyPress(e) {
|
|
149
|
+
return handleKeyPress(e, url);
|
|
139
150
|
}
|
|
140
151
|
}, name);
|
|
141
152
|
}
|
|
@@ -208,7 +219,9 @@ var SearchContent = function SearchContent(_ref) {
|
|
|
208
219
|
className: "text-sm pt-2"
|
|
209
220
|
}, searchResultsMessage), /*#__PURE__*/_react["default"].createElement("div", {
|
|
210
221
|
className: "search-content--results__message"
|
|
211
|
-
}, /*#__PURE__*/_react["default"].createElement("div",
|
|
222
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
223
|
+
className: "search-content--results__content"
|
|
224
|
+
}, renderResults()))))));
|
|
212
225
|
};
|
|
213
226
|
|
|
214
227
|
SearchContent.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","handleClick","e","url","preventDefault","push","renderResults","searchPublishedContent","results","map","name","searchResultsMessage","target","value","propTypes","PropTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return `Error! ${error}`;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.match(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"search-content--expanded__input\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div>{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","handleClick","e","url","preventDefault","push","handleKeyPress","key","renderResults","searchPublishedContent","results","map","name","includes","searchResultsMessage","target","value","propTypes","PropTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = (e, url) => {\n if (e.key === 'Enter') {\n router.push(url);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink\n href={url}\n onClick={e => handleClick(e, url)}\n onKeyPress={e => handleKeyPress(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"search-content--expanded__input\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
@@ -51,13 +51,19 @@ const SearchContent = ({
|
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
53
|
if (loading) return null;
|
|
54
|
-
if (error) return
|
|
54
|
+
if (error) return null;
|
|
55
55
|
|
|
56
56
|
const handleClick = (e, url) => {
|
|
57
57
|
e.preventDefault();
|
|
58
58
|
router.push(url);
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
+
const handleKeyPress = (e, url) => {
|
|
62
|
+
if (e.key === 'Enter') {
|
|
63
|
+
router.push(url);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
61
67
|
const renderResults = () => {
|
|
62
68
|
// eslint-disable-next-line no-undef
|
|
63
69
|
const {
|
|
@@ -69,10 +75,11 @@ const SearchContent = ({
|
|
|
69
75
|
name,
|
|
70
76
|
url
|
|
71
77
|
}) => {
|
|
72
|
-
if (name.
|
|
78
|
+
if (name.includes(searchTerm)) {
|
|
73
79
|
return /*#__PURE__*/React.createElement(BlazeLink, {
|
|
74
80
|
href: url,
|
|
75
|
-
onClick: e => handleClick(e, url)
|
|
81
|
+
onClick: e => handleClick(e, url),
|
|
82
|
+
onKeyPress: e => handleKeyPress(e, url)
|
|
76
83
|
}, name);
|
|
77
84
|
}
|
|
78
85
|
|
|
@@ -138,7 +145,9 @@ const SearchContent = ({
|
|
|
138
145
|
className: "text-sm pt-2"
|
|
139
146
|
}, searchResultsMessage), /*#__PURE__*/React.createElement("div", {
|
|
140
147
|
className: "search-content--results__message"
|
|
141
|
-
}, /*#__PURE__*/React.createElement("div",
|
|
148
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
149
|
+
className: "search-content--results__content"
|
|
150
|
+
}, renderResults()))))));
|
|
142
151
|
};
|
|
143
152
|
|
|
144
153
|
SearchContent.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","renderResults","results","searchPublishedContent","map","name","searchResultsMessage","target","value","propTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return `Error! ${error}`;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.match(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"search-content--expanded__input\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div>{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","handleKeyPress","key","renderResults","results","searchPublishedContent","map","name","includes","searchResultsMessage","target","value","propTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = (e, url) => {\n if (e.key === 'Enter') {\n router.push(url);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink\n href={url}\n onClick={e => handleClick(e, url)}\n onKeyPress={e => handleKeyPress(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"search-content--expanded__input\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.123.0-alpha.
|
|
3
|
+
"version": "0.123.0-alpha.15",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"lib/*",
|
|
85
85
|
"lib-es/*"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "17bf59adc886ba817a337a225f756bff9812d97e"
|
|
88
88
|
}
|
|
@@ -50,22 +50,31 @@ const SearchContent = ({
|
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
if (loading) return null;
|
|
53
|
-
if (error) return
|
|
53
|
+
if (error) return null;
|
|
54
54
|
|
|
55
55
|
const handleClick = (e, url) => {
|
|
56
56
|
e.preventDefault();
|
|
57
57
|
router.push(url);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
+
const handleKeyPress = (e, url) => {
|
|
61
|
+
if (e.key === 'Enter') {
|
|
62
|
+
router.push(url);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
60
66
|
const renderResults = () => {
|
|
61
67
|
// eslint-disable-next-line no-undef
|
|
62
68
|
const { results } = data?.searchPublishedContent;
|
|
63
69
|
|
|
64
70
|
if (results && searchTerm && searchTerm !== '') {
|
|
65
71
|
return results.map(({ name, url }) => {
|
|
66
|
-
if (name.
|
|
72
|
+
if (name.includes(searchTerm)) {
|
|
67
73
|
return (
|
|
68
|
-
<BlazeLink
|
|
74
|
+
<BlazeLink
|
|
75
|
+
href={url}
|
|
76
|
+
onClick={e => handleClick(e, url)}
|
|
77
|
+
onKeyPress={e => handleKeyPress(e, url)}>
|
|
69
78
|
{name}
|
|
70
79
|
</BlazeLink>
|
|
71
80
|
);
|
|
@@ -137,7 +146,7 @@ const SearchContent = ({
|
|
|
137
146
|
<div className="text-sm pt-2">{searchResultsMessage}</div>
|
|
138
147
|
|
|
139
148
|
<div className="search-content--results__message">
|
|
140
|
-
<div>{renderResults()}</div>
|
|
149
|
+
<div className="search-content--results__content">{renderResults()}</div>
|
|
141
150
|
</div>
|
|
142
151
|
</div>
|
|
143
152
|
</div>
|