@blaze-cms/plugin-search-ui 0.110.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +345 -0
- package/LICENSE +674 -0
- package/README.md +45 -0
- package/babel.config.js +3 -0
- package/jest.config.js +5 -0
- package/lib/application/query/index.js +32 -0
- package/lib/application/query/index.js.map +1 -0
- package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js +62 -0
- package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -0
- package/lib/components/SearchAdmin/RecentSearches/index.js +16 -0
- package/lib/components/SearchAdmin/RecentSearches/index.js.map +1 -0
- package/lib/components/SearchAdmin/SearchAdmin.js +191 -0
- package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -0
- package/lib/components/SearchAdmin/SearchBar/SearchBar.js +72 -0
- package/lib/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -0
- package/lib/components/SearchAdmin/SearchBar/index.js +16 -0
- package/lib/components/SearchAdmin/SearchBar/index.js.map +1 -0
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js +200 -0
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -0
- package/lib/components/SearchAdmin/SearchResults/index.js +16 -0
- package/lib/components/SearchAdmin/SearchResults/index.js.map +1 -0
- package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js +30 -0
- package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -0
- package/lib/components/SearchAdmin/TriggerModal/index.js +16 -0
- package/lib/components/SearchAdmin/TriggerModal/index.js.map +1 -0
- package/lib/components/SearchAdmin/index.js +16 -0
- package/lib/components/SearchAdmin/index.js.map +1 -0
- package/lib/components/SearchPublishedContent/SearchPublishedContent.js +216 -0
- package/lib/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -0
- package/lib/components/SearchPublishedContent/index.js +16 -0
- package/lib/components/SearchPublishedContent/index.js.map +1 -0
- package/lib/components/useLocalStorage/index.js +16 -0
- package/lib/components/useLocalStorage/index.js.map +1 -0
- package/lib/components/useLocalStorage/useLocalStorage.js +36 -0
- package/lib/components/useLocalStorage/useLocalStorage.js.map +1 -0
- package/lib/components/useSearch/index.js +16 -0
- package/lib/components/useSearch/index.js.map +1 -0
- package/lib/components/useSearch/useSearch.js +154 -0
- package/lib/components/useSearch/useSearch.js.map +1 -0
- package/lib/components/useSearchResults/index.js +16 -0
- package/lib/components/useSearchResults/index.js.map +1 -0
- package/lib/components/useSearchResults/useSearchResults.js +102 -0
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -0
- package/lib/constants.js +25 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +34 -0
- package/lib/index.js.map +1 -0
- package/lib-es/application/query/index.js +34 -0
- package/lib-es/application/query/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js +40 -0
- package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -0
- package/lib-es/components/SearchAdmin/RecentSearches/index.js +3 -0
- package/lib-es/components/SearchAdmin/RecentSearches/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchAdmin.js +126 -0
- package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js +54 -0
- package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchBar/index.js +3 -0
- package/lib-es/components/SearchAdmin/SearchBar/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +120 -0
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchResults/index.js +3 -0
- package/lib-es/components/SearchAdmin/SearchResults/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js +16 -0
- package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -0
- package/lib-es/components/SearchAdmin/TriggerModal/index.js +3 -0
- package/lib-es/components/SearchAdmin/TriggerModal/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/index.js +3 -0
- package/lib-es/components/SearchAdmin/index.js.map +1 -0
- package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js +157 -0
- package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -0
- package/lib-es/components/SearchPublishedContent/index.js +3 -0
- package/lib-es/components/SearchPublishedContent/index.js.map +1 -0
- package/lib-es/components/useLocalStorage/index.js +3 -0
- package/lib-es/components/useLocalStorage/index.js.map +1 -0
- package/lib-es/components/useLocalStorage/useLocalStorage.js +19 -0
- package/lib-es/components/useLocalStorage/useLocalStorage.js.map +1 -0
- package/lib-es/components/useSearch/index.js +3 -0
- package/lib-es/components/useSearch/index.js.map +1 -0
- package/lib-es/components/useSearch/useSearch.js +100 -0
- package/lib-es/components/useSearch/useSearch.js.map +1 -0
- package/lib-es/components/useSearchResults/index.js +3 -0
- package/lib-es/components/useSearchResults/index.js.map +1 -0
- package/lib-es/components/useSearchResults/useSearchResults.js +57 -0
- package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -0
- package/lib-es/constants.js +10 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/index.js +5 -0
- package/lib-es/index.js.map +1 -0
- package/package.json +56 -0
- package/src/application/query/index.js +28 -0
- package/src/components/SearchAdmin/RecentSearches/RecentSearches.js +33 -0
- package/src/components/SearchAdmin/RecentSearches/index.js +3 -0
- package/src/components/SearchAdmin/SearchAdmin.js +129 -0
- package/src/components/SearchAdmin/SearchBar/SearchBar.js +58 -0
- package/src/components/SearchAdmin/SearchBar/index.js +3 -0
- package/src/components/SearchAdmin/SearchResults/SearchResults.js +112 -0
- package/src/components/SearchAdmin/SearchResults/index.js +3 -0
- package/src/components/SearchAdmin/TriggerModal/TriggerModal.js +17 -0
- package/src/components/SearchAdmin/TriggerModal/index.js +3 -0
- package/src/components/SearchAdmin/index.js +3 -0
- package/src/components/SearchPublishedContent/SearchPublishedContent.js +157 -0
- package/src/components/SearchPublishedContent/index.js +3 -0
- package/src/components/useLocalStorage/index.js +3 -0
- package/src/components/useLocalStorage/useLocalStorage.js +18 -0
- package/src/components/useSearch/index.js +3 -0
- package/src/components/useSearch/useSearch.js +85 -0
- package/src/components/useSearchResults/index.js +3 -0
- package/src/components/useSearchResults/useSearchResults.js +38 -0
- package/src/constants.js +19 -0
- package/src/index.js +5 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.string.iterator.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.weak-map.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.define-property.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
16
|
+
|
|
17
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
18
|
+
|
|
19
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
20
|
+
|
|
21
|
+
Object.defineProperty(exports, "__esModule", {
|
|
22
|
+
value: true
|
|
23
|
+
});
|
|
24
|
+
exports["default"] = void 0;
|
|
25
|
+
|
|
26
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
27
|
+
|
|
28
|
+
require("core-js/modules/es.array.includes.js");
|
|
29
|
+
|
|
30
|
+
require("core-js/modules/es.string.includes.js");
|
|
31
|
+
|
|
32
|
+
require("core-js/modules/es.array.concat.js");
|
|
33
|
+
|
|
34
|
+
require("core-js/modules/es.date.to-string.js");
|
|
35
|
+
|
|
36
|
+
require("core-js/modules/es.array.slice.js");
|
|
37
|
+
|
|
38
|
+
require("core-js/modules/es.function.name.js");
|
|
39
|
+
|
|
40
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
41
|
+
|
|
42
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
43
|
+
|
|
44
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
45
|
+
|
|
46
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
47
|
+
|
|
48
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
49
|
+
|
|
50
|
+
var _reactTinyVirtualList = _interopRequireDefault(require("react-tiny-virtual-list"));
|
|
51
|
+
|
|
52
|
+
var _reactRouterDom = require("react-router-dom");
|
|
53
|
+
|
|
54
|
+
var _constants = require("../../../constants");
|
|
55
|
+
|
|
56
|
+
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); }
|
|
57
|
+
|
|
58
|
+
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; }
|
|
59
|
+
|
|
60
|
+
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
61
|
+
|
|
62
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
63
|
+
var SearchResults = function SearchResults(_ref) {
|
|
64
|
+
var currentValue = _ref.currentValue,
|
|
65
|
+
loading = _ref.loading,
|
|
66
|
+
results = _ref.results,
|
|
67
|
+
total = _ref.total,
|
|
68
|
+
setQueryParams = _ref.setQueryParams,
|
|
69
|
+
closeModal = _ref.closeModal,
|
|
70
|
+
history = _ref.history;
|
|
71
|
+
|
|
72
|
+
var _useState = (0, _react.useState)([]),
|
|
73
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
74
|
+
verifiedRanges = _useState2[0],
|
|
75
|
+
setVerifiedRanges = _useState2[1];
|
|
76
|
+
|
|
77
|
+
var _useState3 = (0, _react.useState)(0),
|
|
78
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
79
|
+
currentIndex = _useState4[0],
|
|
80
|
+
setCurrentIndex = _useState4[1];
|
|
81
|
+
|
|
82
|
+
var handleRenderedItems = /*#__PURE__*/function () {
|
|
83
|
+
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2) {
|
|
84
|
+
var startIndex, rowsLength, loadIndex;
|
|
85
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
86
|
+
while (1) {
|
|
87
|
+
switch (_context.prev = _context.next) {
|
|
88
|
+
case 0:
|
|
89
|
+
startIndex = _ref2.startIndex;
|
|
90
|
+
rowsLength = results.length;
|
|
91
|
+
loadIndex = Math.floor(rowsLength / 2) - _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER;
|
|
92
|
+
|
|
93
|
+
if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {
|
|
94
|
+
setQueryParams({
|
|
95
|
+
value: currentValue,
|
|
96
|
+
offset: results.length
|
|
97
|
+
});
|
|
98
|
+
setVerifiedRanges([].concat((0, _toConsumableArray2["default"])(verifiedRanges), [loadIndex]));
|
|
99
|
+
setCurrentIndex(startIndex + _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
case 4:
|
|
103
|
+
case "end":
|
|
104
|
+
return _context.stop();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}, _callee);
|
|
108
|
+
}));
|
|
109
|
+
|
|
110
|
+
return function handleRenderedItems(_x) {
|
|
111
|
+
return _ref3.apply(this, arguments);
|
|
112
|
+
};
|
|
113
|
+
}();
|
|
114
|
+
|
|
115
|
+
var getNavigationRoute = function getNavigationRoute(_ref4) {
|
|
116
|
+
var id = _ref4.id,
|
|
117
|
+
docType = _ref4.docType;
|
|
118
|
+
return docType === _constants.FILE ? "/media/edit/".concat(id) : "/data-listing/".concat(docType, "/update/").concat(id);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var navigate = function navigate(_ref5) {
|
|
122
|
+
var id = _ref5.id,
|
|
123
|
+
docType = _ref5.docType;
|
|
124
|
+
history.push(getNavigationRoute({
|
|
125
|
+
id: id,
|
|
126
|
+
docType: docType
|
|
127
|
+
}));
|
|
128
|
+
closeModal();
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
var getDateFormat = function getDateFormat(date) {
|
|
132
|
+
var newDate = new Date(date);
|
|
133
|
+
var day = "0".concat(newDate.getDate()).slice(-2);
|
|
134
|
+
var month = "0".concat(newDate.getMonth() + 1).slice(-2);
|
|
135
|
+
var year = String(newDate.getYear()).slice(-2);
|
|
136
|
+
return "".concat(day, ".").concat(month, ".").concat(year);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, loading && /*#__PURE__*/_react["default"].createElement("span", null, "Loading..."), /*#__PURE__*/_react["default"].createElement("div", {
|
|
140
|
+
className: "modal__content modal__content--search"
|
|
141
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
|
+
className: "header header--list"
|
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, total, " results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
144
|
+
width: "100%",
|
|
145
|
+
height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
146
|
+
itemCount: results.length,
|
|
147
|
+
itemSize: _constants.SEARCH_RESULTS_ITEM_SIZE,
|
|
148
|
+
overscanCount: _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER,
|
|
149
|
+
scrollToIndex: currentIndex,
|
|
150
|
+
onItemsRendered: handleRenderedItems,
|
|
151
|
+
renderItem: function renderItem(_ref6) {
|
|
152
|
+
var index = _ref6.index,
|
|
153
|
+
style = _ref6.style;
|
|
154
|
+
var _results$index = results[index],
|
|
155
|
+
id = _results$index.id,
|
|
156
|
+
docType = _results$index.docType,
|
|
157
|
+
updated = _results$index.updated,
|
|
158
|
+
name = _results$index.name;
|
|
159
|
+
var updatedDate = updated ? getDateFormat(updated) : null;
|
|
160
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
|
+
key: index,
|
|
162
|
+
style: style,
|
|
163
|
+
className: "list__item--resultWrapper"
|
|
164
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
165
|
+
className: "list__item list__item--result"
|
|
166
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
167
|
+
className: "list__item-row list__item-row--result"
|
|
168
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
169
|
+
className: "badge badge--primary"
|
|
170
|
+
}, docType, " ", updatedDate), /*#__PURE__*/_react["default"].createElement("a", {
|
|
171
|
+
href: getNavigationRoute({
|
|
172
|
+
id: id,
|
|
173
|
+
docType: docType
|
|
174
|
+
}),
|
|
175
|
+
onClick: function onClick() {
|
|
176
|
+
return navigate({
|
|
177
|
+
id: id,
|
|
178
|
+
docType: docType
|
|
179
|
+
});
|
|
180
|
+
},
|
|
181
|
+
className: "list__item-text list__item-text--result"
|
|
182
|
+
}, name))));
|
|
183
|
+
}
|
|
184
|
+
})));
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
SearchResults.propTypes = {
|
|
188
|
+
loading: _propTypes["default"].bool.isRequired,
|
|
189
|
+
results: _propTypes["default"].array.isRequired,
|
|
190
|
+
total: _propTypes["default"].number.isRequired,
|
|
191
|
+
setQueryParams: _propTypes["default"].func.isRequired,
|
|
192
|
+
closeModal: _propTypes["default"].func.isRequired,
|
|
193
|
+
history: _propTypes["default"].object.isRequired,
|
|
194
|
+
currentValue: _propTypes["default"].string.isRequired
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var _default = (0, _reactRouterDom.withRouter)(SearchResults);
|
|
198
|
+
|
|
199
|
+
exports["default"] = _default;
|
|
200
|
+
//# sourceMappingURL=SearchResults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/SearchResults/SearchResults.js"],"names":["SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","verifiedRanges","setVerifiedRanges","currentIndex","setCurrentIndex","handleRenderedItems","startIndex","rowsLength","length","loadIndex","Math","floor","SEARCH_RESULTS_OVER_SCAN_BUFFER","includes","value","offset","getNavigationRoute","id","docType","FILE","navigate","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","window","innerHeight","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","index","style","updated","name","updatedDate","propTypes","PropTypes","bool","isRequired","array","number","func","object","string"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { withRouter } from 'react-router-dom';\nimport {\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_ITEM_SIZE,\n FILE\n} from '../../../constants';\n\nconst SearchResults = ({\n currentValue,\n loading,\n results,\n total,\n setQueryParams,\n closeModal,\n history\n}) => {\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const handleRenderedItems = async ({ startIndex }) => {\n const rowsLength = results.length;\n const loadIndex = Math.floor(rowsLength / 2) - SEARCH_RESULTS_OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({ value: currentValue, offset: results.length });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentIndex(startIndex + SEARCH_RESULTS_OVER_SCAN_BUFFER);\n }\n };\n\n const getNavigationRoute = ({ id, docType }) =>\n docType === FILE ? `/media/edit/${id}` : `/data-listing/${docType}/update/${id}`;\n\n const navigate = ({ id, docType }) => {\n history.push(getNavigationRoute({ id, docType }));\n closeModal();\n };\n\n const getDateFormat = date => {\n const newDate = new Date(date);\n const day = `0${newDate.getDate()}`.slice(-2);\n const month = `0${newDate.getMonth() + 1}`.slice(-2);\n const year = String(newDate.getYear()).slice(-2);\n return `${day}.${month}.${year}`;\n };\n\n return (\n <>\n {loading && <span>Loading...</span>}\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2>{total} results</h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={results.length}\n itemSize={SEARCH_RESULTS_ITEM_SIZE}\n overscanCount={SEARCH_RESULTS_OVER_SCAN_BUFFER}\n scrollToIndex={currentIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const { id, docType, updated, name } = results[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <div className=\"list__item list__item--result\">\n <div className=\"list__item-row list__item-row--result\">\n <span className=\"badge badge--primary\">\n {docType} {updatedDate}\n </span>\n <a\n href={getNavigationRoute({\n id,\n docType\n })}\n onClick={() =>\n navigate({\n id,\n docType\n })\n }\n className=\"list__item-text list__item-text--result\">\n {name}\n </a>\n </div>\n </div>\n </div>\n );\n }}\n />\n </div>\n </>\n );\n};\n\nSearchResults.propTypes = {\n loading: PropTypes.bool.isRequired,\n results: PropTypes.array.isRequired,\n total: PropTypes.number.isRequired,\n setQueryParams: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n currentValue: PropTypes.string.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"file":"SearchResults.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _SearchResults = _interopRequireDefault(require("./SearchResults"));
|
|
13
|
+
|
|
14
|
+
var _default = _SearchResults["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/SearchResults/index.js"],"names":["SearchResults"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,yB","sourcesContent":["import SearchResults from './SearchResults';\n\nexport default SearchResults;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var TriggerModal = function TriggerModal(_ref) {
|
|
17
|
+
var toggleSearchModal = _ref.toggleSearchModal;
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
19
|
+
role: "button",
|
|
20
|
+
className: "material-icons searchModal-search-icon",
|
|
21
|
+
onClick: toggleSearchModal
|
|
22
|
+
}, "search");
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
TriggerModal.propTypes = {
|
|
26
|
+
toggleSearchModal: _propTypes["default"].func.isRequired
|
|
27
|
+
};
|
|
28
|
+
var _default = TriggerModal;
|
|
29
|
+
exports["default"] = _default;
|
|
30
|
+
//# sourceMappingURL=TriggerModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/TriggerModal/TriggerModal.js"],"names":["TriggerModal","toggleSearchModal","propTypes","PropTypes","func","isRequired"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe;AAAA,MAAGC,iBAAH,QAAGA,iBAAH;AAAA,sBACnB;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,SAAS,EAAC,wCAFZ;AAGE,IAAA,OAAO,EAAEA;AAHX,cADmB;AAAA,CAArB;;AASAD,YAAY,CAACE,SAAb,GAAyB;AACvBD,EAAAA,iBAAiB,EAAEE,sBAAUC,IAAV,CAAeC;AADX,CAAzB;eAIeL,Y","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TriggerModal = ({ toggleSearchModal }) => (\n <span\n role=\"button\"\n className=\"material-icons searchModal-search-icon\"\n onClick={toggleSearchModal}>\n search\n </span>\n);\n\nTriggerModal.propTypes = {\n toggleSearchModal: PropTypes.func.isRequired\n};\n\nexport default TriggerModal;\n"],"file":"TriggerModal.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
|
|
13
|
+
|
|
14
|
+
var _default = _TriggerModal["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/TriggerModal/index.js"],"names":["TriggerModal"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,wB","sourcesContent":["import TriggerModal from './TriggerModal';\n\nexport default TriggerModal;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _SearchAdmin = _interopRequireDefault(require("./SearchAdmin"));
|
|
13
|
+
|
|
14
|
+
var _default = _SearchAdmin["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchAdmin/index.js"],"names":["SearchAdmin"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,uB","sourcesContent":["import SearchAdmin from './SearchAdmin';\n\nexport default SearchAdmin;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.string.iterator.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.weak-map.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.define-property.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
16
|
+
|
|
17
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
18
|
+
|
|
19
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
20
|
+
|
|
21
|
+
Object.defineProperty(exports, "__esModule", {
|
|
22
|
+
value: true
|
|
23
|
+
});
|
|
24
|
+
exports["default"] = void 0;
|
|
25
|
+
|
|
26
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
29
|
+
|
|
30
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
+
|
|
32
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
|
+
|
|
34
|
+
var _customHooks = require("@blaze-react/utils/lib/customHooks");
|
|
35
|
+
|
|
36
|
+
var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
|
|
37
|
+
|
|
38
|
+
var _constants = require("../../constants");
|
|
39
|
+
|
|
40
|
+
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); }
|
|
41
|
+
|
|
42
|
+
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; }
|
|
43
|
+
|
|
44
|
+
var SearchPublishedContent = function SearchPublishedContent(_ref) {
|
|
45
|
+
var entities = _ref.entities,
|
|
46
|
+
children = _ref.children,
|
|
47
|
+
resultKeys = _ref.resultKeys,
|
|
48
|
+
getIsOpenSearchBar = _ref.getIsOpenSearchBar,
|
|
49
|
+
SearchIcon = _ref.SearchIcon,
|
|
50
|
+
CloseIcon = _ref.CloseIcon,
|
|
51
|
+
className = _ref.className,
|
|
52
|
+
onChange = _ref.onChange,
|
|
53
|
+
placeholder = _ref.placeholder,
|
|
54
|
+
onEnterPress = _ref.onEnterPress,
|
|
55
|
+
inputRef = _ref.inputRef,
|
|
56
|
+
isSearchBarOpen = _ref.isSearchBarOpen,
|
|
57
|
+
fields = _ref.fields;
|
|
58
|
+
|
|
59
|
+
var _useState = (0, _react.useState)(isSearchBarOpen),
|
|
60
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
61
|
+
displaySearchBar = _useState2[0],
|
|
62
|
+
setDisplaySearchBar = _useState2[1];
|
|
63
|
+
|
|
64
|
+
var _useState3 = (0, _react.useState)(''),
|
|
65
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
66
|
+
searchTerm = _useState4[0],
|
|
67
|
+
setSearchTerm = _useState4[1];
|
|
68
|
+
|
|
69
|
+
var _useState5 = (0, _react.useState)(null),
|
|
70
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
71
|
+
previousSearchTerm = _useState6[0],
|
|
72
|
+
setPreviousSearchTerm = _useState6[1];
|
|
73
|
+
|
|
74
|
+
var debouncedSearchTerm = (0, _customHooks.useDebounce)(searchTerm, 500);
|
|
75
|
+
|
|
76
|
+
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
77
|
+
queryKey: _constants.SEARCH_PUBLISHED,
|
|
78
|
+
resultKeys: resultKeys,
|
|
79
|
+
entities: entities,
|
|
80
|
+
fields: fields
|
|
81
|
+
}),
|
|
82
|
+
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
83
|
+
_useSearchResults2$ = _useSearchResults2[0],
|
|
84
|
+
loading = _useSearchResults2$.loading,
|
|
85
|
+
results = _useSearchResults2$.results,
|
|
86
|
+
setQueryParams = _useSearchResults2[1];
|
|
87
|
+
|
|
88
|
+
(0, _react.useEffect)(function () {
|
|
89
|
+
if (isSearchBarOpen !== displaySearchBar) {
|
|
90
|
+
setDisplaySearchBar(isSearchBarOpen);
|
|
91
|
+
}
|
|
92
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
|
+
[isSearchBarOpen]);
|
|
94
|
+
(0, _react.useEffect)(function () {
|
|
95
|
+
if (inputRef && inputRef.current && displaySearchBar) {
|
|
96
|
+
inputRef.current.focus();
|
|
97
|
+
}
|
|
98
|
+
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
99
|
+
[displaySearchBar]);
|
|
100
|
+
(0, _react.useEffect)(function () {
|
|
101
|
+
if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {
|
|
102
|
+
setQueryParams({
|
|
103
|
+
value: debouncedSearchTerm
|
|
104
|
+
});
|
|
105
|
+
setPreviousSearchTerm(debouncedSearchTerm);
|
|
106
|
+
}
|
|
107
|
+
}, [debouncedSearchTerm, previousSearchTerm, setQueryParams]);
|
|
108
|
+
|
|
109
|
+
var handleOnChange = function handleOnChange(_ref2) {
|
|
110
|
+
var _ref2$target = _ref2.target;
|
|
111
|
+
_ref2$target = _ref2$target === void 0 ? {} : _ref2$target;
|
|
112
|
+
var _ref2$target$value = _ref2$target.value,
|
|
113
|
+
value = _ref2$target$value === void 0 ? '' : _ref2$target$value;
|
|
114
|
+
onChange(value);
|
|
115
|
+
setSearchTerm(value);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var handleKeyPress = function handleKeyPress(event) {
|
|
119
|
+
var onEnter = event.key === 'Enter';
|
|
120
|
+
onEnter && onEnterPress();
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var handleSearchBar = function handleSearchBar() {
|
|
124
|
+
var voidSearchTerm = '';
|
|
125
|
+
displaySearchBar && setSearchTerm(voidSearchTerm);
|
|
126
|
+
handleOnChange({
|
|
127
|
+
value: voidSearchTerm
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
if (isSearchBarOpen !== null) {
|
|
131
|
+
getIsOpenSearchBar(!displaySearchBar);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
setDisplaySearchBar(!displaySearchBar);
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var searchWrapperClassname = (0, _classnames["default"])('search__wrapper', {
|
|
138
|
+
'search__wrapper--toggle-display': displaySearchBar,
|
|
139
|
+
'search__wrapper--toggle': !displaySearchBar
|
|
140
|
+
});
|
|
141
|
+
var triggerClassname = (0, _classnames["default"])('search__icon', {
|
|
142
|
+
open: displaySearchBar
|
|
143
|
+
});
|
|
144
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
145
|
+
className: "search-wrapper ".concat(className)
|
|
146
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
147
|
+
className: "search search--header search--toggle"
|
|
148
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
149
|
+
className: searchWrapperClassname
|
|
150
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
151
|
+
"data-testid": "search-input",
|
|
152
|
+
onKeyPress: handleKeyPress,
|
|
153
|
+
placeholder: placeholder,
|
|
154
|
+
type: "text",
|
|
155
|
+
onChange: handleOnChange,
|
|
156
|
+
value: searchTerm,
|
|
157
|
+
ref: inputRef
|
|
158
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
159
|
+
type: "button",
|
|
160
|
+
className: "icon-button icon-button--search icon-button--toggle"
|
|
161
|
+
}, /*#__PURE__*/_react["default"].createElement(SearchIcon, null))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
162
|
+
role: "button",
|
|
163
|
+
className: triggerClassname,
|
|
164
|
+
onClick: handleSearchBar,
|
|
165
|
+
id: _constants.SEARCH_BUTTON,
|
|
166
|
+
title: _constants.SEARCH_BUTTON
|
|
167
|
+
}, !displaySearchBar ? /*#__PURE__*/_react["default"].createElement(SearchIcon, null) : /*#__PURE__*/_react["default"].createElement(CloseIcon, null))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
168
|
+
className: "search-modal"
|
|
169
|
+
}, children({
|
|
170
|
+
results: results.length && searchTerm ? results : [],
|
|
171
|
+
loading: loading
|
|
172
|
+
})));
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
SearchPublishedContent.propTypes = {
|
|
176
|
+
entities: _propTypes["default"].array,
|
|
177
|
+
children: _propTypes["default"].func.isRequired,
|
|
178
|
+
resultKeys: _propTypes["default"].string,
|
|
179
|
+
getIsOpenSearchBar: _propTypes["default"].func,
|
|
180
|
+
SearchIcon: _propTypes["default"].func,
|
|
181
|
+
CloseIcon: _propTypes["default"].func,
|
|
182
|
+
onChange: _propTypes["default"].func,
|
|
183
|
+
onEnterPress: _propTypes["default"].func,
|
|
184
|
+
className: _propTypes["default"].string,
|
|
185
|
+
placeholder: _propTypes["default"].string,
|
|
186
|
+
inputRef: _propTypes["default"].object,
|
|
187
|
+
isSearchBarOpen: _propTypes["default"].bool,
|
|
188
|
+
fields: _propTypes["default"].array
|
|
189
|
+
};
|
|
190
|
+
SearchPublishedContent.defaultProps = {
|
|
191
|
+
entities: ['published_page'],
|
|
192
|
+
placeholder: '',
|
|
193
|
+
resultKeys: _constants.DEFAULT_RESULTS_KEYS,
|
|
194
|
+
onChange: function onChange() {},
|
|
195
|
+
onEnterPress: function onEnterPress() {},
|
|
196
|
+
getIsOpenSearchBar: function getIsOpenSearchBar(state) {
|
|
197
|
+
return state;
|
|
198
|
+
},
|
|
199
|
+
SearchIcon: function SearchIcon() {
|
|
200
|
+
return /*#__PURE__*/_react["default"].createElement("i", {
|
|
201
|
+
className: "material-icons"
|
|
202
|
+
}, "search");
|
|
203
|
+
},
|
|
204
|
+
CloseIcon: function CloseIcon() {
|
|
205
|
+
return /*#__PURE__*/_react["default"].createElement("i", {
|
|
206
|
+
className: "material-icons"
|
|
207
|
+
}, "close");
|
|
208
|
+
},
|
|
209
|
+
className: '',
|
|
210
|
+
inputRef: null,
|
|
211
|
+
isSearchBarOpen: null,
|
|
212
|
+
fields: []
|
|
213
|
+
};
|
|
214
|
+
var _default = SearchPublishedContent;
|
|
215
|
+
exports["default"] = _default;
|
|
216
|
+
//# sourceMappingURL=SearchPublishedContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchPublishedContent/SearchPublishedContent.js"],"names":["SearchPublishedContent","entities","children","resultKeys","getIsOpenSearchBar","SearchIcon","CloseIcon","className","onChange","placeholder","onEnterPress","inputRef","isSearchBarOpen","fields","displaySearchBar","setDisplaySearchBar","searchTerm","setSearchTerm","previousSearchTerm","setPreviousSearchTerm","debouncedSearchTerm","queryKey","SEARCH_PUBLISHED","loading","results","setQueryParams","current","focus","value","handleOnChange","target","handleKeyPress","event","onEnter","key","handleSearchBar","voidSearchTerm","searchWrapperClassname","triggerClassname","open","SEARCH_BUTTON","length","propTypes","PropTypes","array","func","isRequired","string","object","bool","defaultProps","DEFAULT_RESULTS_KEYS","state"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_PUBLISHED, DEFAULT_RESULTS_KEYS, SEARCH_BUTTON } from '../../constants';\n\nconst SearchPublishedContent = ({\n entities,\n children,\n resultKeys,\n getIsOpenSearchBar,\n SearchIcon,\n CloseIcon,\n className,\n onChange,\n placeholder,\n onEnterPress,\n inputRef,\n isSearchBarOpen,\n fields\n}) => {\n const [displaySearchBar, setDisplaySearchBar] = useState(isSearchBarOpen);\n const [searchTerm, setSearchTerm] = useState('');\n const [previousSearchTerm, setPreviousSearchTerm] = useState(null);\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n const [{ loading, results }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_PUBLISHED,\n resultKeys,\n entities,\n fields\n });\n\n useEffect(\n () => {\n if (isSearchBarOpen !== displaySearchBar) {\n setDisplaySearchBar(isSearchBarOpen);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isSearchBarOpen]\n );\n\n useEffect(\n () => {\n if (inputRef && inputRef.current && displaySearchBar) {\n inputRef.current.focus();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [displaySearchBar]\n );\n\n useEffect(\n () => {\n if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {\n setQueryParams({ value: debouncedSearchTerm });\n setPreviousSearchTerm(debouncedSearchTerm);\n }\n },\n [debouncedSearchTerm, previousSearchTerm, setQueryParams]\n );\n\n const handleOnChange = ({ target: { value = '' } = {} }) => {\n onChange(value);\n setSearchTerm(value);\n };\n\n const handleKeyPress = event => {\n const onEnter = event.key === 'Enter';\n onEnter && onEnterPress();\n };\n\n const handleSearchBar = () => {\n const voidSearchTerm = '';\n displaySearchBar && setSearchTerm(voidSearchTerm);\n handleOnChange({ value: voidSearchTerm });\n if (isSearchBarOpen !== null) {\n getIsOpenSearchBar(!displaySearchBar);\n }\n setDisplaySearchBar(!displaySearchBar);\n };\n\n const searchWrapperClassname = classnames('search__wrapper', {\n 'search__wrapper--toggle-display': displaySearchBar,\n 'search__wrapper--toggle': !displaySearchBar\n });\n\n const triggerClassname = classnames('search__icon', {\n open: displaySearchBar\n });\n\n return (\n <div className={`search-wrapper ${className}`}>\n <div className=\"search search--header search--toggle\">\n <div className={searchWrapperClassname}>\n <input\n data-testid=\"search-input\"\n onKeyPress={handleKeyPress}\n placeholder={placeholder}\n type=\"text\"\n onChange={handleOnChange}\n value={searchTerm}\n ref={inputRef}\n />\n <button type=\"button\" className=\"icon-button icon-button--search icon-button--toggle\">\n <SearchIcon />\n </button>\n </div>\n <div\n role=\"button\"\n className={triggerClassname}\n onClick={handleSearchBar}\n id={SEARCH_BUTTON}\n title={SEARCH_BUTTON}>\n {!displaySearchBar ? <SearchIcon /> : <CloseIcon />}\n </div>\n </div>\n <div className=\"search-modal\">\n {children({ results: results.length && searchTerm ? results : [], loading })}\n </div>\n </div>\n );\n};\n\nSearchPublishedContent.propTypes = {\n entities: PropTypes.array,\n children: PropTypes.func.isRequired,\n resultKeys: PropTypes.string,\n getIsOpenSearchBar: PropTypes.func,\n SearchIcon: PropTypes.func,\n CloseIcon: PropTypes.func,\n onChange: PropTypes.func,\n onEnterPress: PropTypes.func,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n inputRef: PropTypes.object,\n isSearchBarOpen: PropTypes.bool,\n fields: PropTypes.array\n};\n\nSearchPublishedContent.defaultProps = {\n entities: ['published_page'],\n placeholder: '',\n resultKeys: DEFAULT_RESULTS_KEYS,\n onChange: () => {},\n onEnterPress: () => {},\n getIsOpenSearchBar: state => state,\n SearchIcon: () => <i className=\"material-icons\">search</i>,\n CloseIcon: () => <i className=\"material-icons\">close</i>,\n className: '',\n inputRef: null,\n isSearchBarOpen: null,\n fields: []\n};\n\nexport default SearchPublishedContent;\n"],"file":"SearchPublishedContent.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _SearchPublishedContent = _interopRequireDefault(require("./SearchPublishedContent"));
|
|
13
|
+
|
|
14
|
+
var _default = _SearchPublishedContent["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchPublishedContent/index.js"],"names":["SearchPublishedContent"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,kC","sourcesContent":["import SearchPublishedContent from './SearchPublishedContent';\n\nexport default SearchPublishedContent;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _useLocalStorage = _interopRequireDefault(require("./useLocalStorage"));
|
|
13
|
+
|
|
14
|
+
var _default = _useLocalStorage["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/useLocalStorage/index.js"],"names":["useLocalStorage"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,2B","sourcesContent":["import useLocalStorage from './useLocalStorage';\n\nexport default useLocalStorage;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
function useLocalStorage(key, initialValue) {
|
|
17
|
+
var _useState = (0, _react.useState)(function () {
|
|
18
|
+
var item = window.localStorage.getItem(key);
|
|
19
|
+
return item ? JSON.parse(item) : initialValue;
|
|
20
|
+
}),
|
|
21
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
22
|
+
storedValue = _useState2[0],
|
|
23
|
+
setStoredValue = _useState2[1];
|
|
24
|
+
|
|
25
|
+
var setValue = function setValue(value) {
|
|
26
|
+
var valueToStore = value instanceof Function ? value(storedValue) : value;
|
|
27
|
+
setStoredValue(valueToStore);
|
|
28
|
+
window.localStorage.setItem(key, JSON.stringify(valueToStore));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return [storedValue, setValue];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var _default = useLocalStorage;
|
|
35
|
+
exports["default"] = _default;
|
|
36
|
+
//# sourceMappingURL=useLocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/useLocalStorage/useLocalStorage.js"],"names":["useLocalStorage","key","initialValue","item","window","localStorage","getItem","JSON","parse","storedValue","setStoredValue","setValue","value","valueToStore","Function","setItem","stringify"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,SAASA,eAAT,CAAyBC,GAAzB,EAA8BC,YAA9B,EAA4C;AAC1C,kBAAsC,qBAAS,YAAM;AACnD,QAAMC,IAAI,GAAGC,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4BL,GAA5B,CAAb;AACA,WAAOE,IAAI,GAAGI,IAAI,CAACC,KAAL,CAAWL,IAAX,CAAH,GAAsBD,YAAjC;AACD,GAHqC,CAAtC;AAAA;AAAA,MAAOO,WAAP;AAAA,MAAoBC,cAApB;;AAKA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAAC,KAAK,EAAI;AACxB,QAAMC,YAAY,GAAGD,KAAK,YAAYE,QAAjB,GAA4BF,KAAK,CAACH,WAAD,CAAjC,GAAiDG,KAAtE;AACAF,IAAAA,cAAc,CAACG,YAAD,CAAd;AACAT,IAAAA,MAAM,CAACC,YAAP,CAAoBU,OAApB,CAA4Bd,GAA5B,EAAiCM,IAAI,CAACS,SAAL,CAAeH,YAAf,CAAjC;AACD,GAJD;;AAMA,SAAO,CAACJ,WAAD,EAAcE,QAAd,CAAP;AACD;;eAEcX,e","sourcesContent":["import { useState } from 'react';\n\nfunction useLocalStorage(key, initialValue) {\n const [storedValue, setStoredValue] = useState(() => {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n });\n\n const setValue = value => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n };\n\n return [storedValue, setValue];\n}\n\nexport default useLocalStorage;\n"],"file":"useLocalStorage.js"}
|