@blaze-cms/plugin-search-ui 0.125.0-admin-updates.1 → 0.125.0-core-styles.0
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 +1 -23
- package/lib/components/SearchAdmin/SearchAdmin.js +13 -70
- package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js +6 -18
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib/components/useSearch/useSearch.js +5 -12
- package/lib/components/useSearch/useSearch.js.map +1 -1
- package/lib/components/useSearchResults/useSearchResults.js +25 -1
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchAdmin.js +3 -34
- package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +6 -18
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib-es/components/useSearch/useSearch.js +2 -5
- package/lib-es/components/useSearch/useSearch.js.map +1 -1
- package/lib-es/components/useSearchResults/useSearchResults.js +11 -1
- package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
- package/package.json +3 -3
- package/src/components/SearchAdmin/SearchAdmin.js +40 -70
- package/src/components/SearchAdmin/SearchResults/SearchResults.js +6 -42
- package/src/components/useSearch/useSearch.js +2 -8
- package/src/components/useSearchResults/useSearchResults.js +15 -1
- package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +0 -143
- package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +0 -1
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +0 -16
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +0 -1
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +0 -79
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +0 -1
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +0 -3
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +0 -1
- package/src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +0 -88
- package/src/components/SearchAdmin/SearchAdminSideBar/index.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,34 +3,12 @@
|
|
|
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.125.0-
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @blaze-cms/plugin-search-ui
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# [0.125.0-admin-updates.0](https://github.com/thebyte9/blaze/compare/v0.124.1...v0.125.0-admin-updates.0) (2022-10-05)
|
|
6
|
+
# [0.125.0-core-styles.0](https://github.com/thebyte9/blaze/compare/v0.124.1...v0.125.0-core-styles.0) (2022-10-26)
|
|
15
7
|
|
|
16
8
|
|
|
17
9
|
### Bug Fixes
|
|
18
10
|
|
|
19
|
-
* add updated searchAdmin test ([4db3178](https://github.com/thebyte9/blaze/commit/4db3178f8c95182d107a1d151a793a0987c8d7b8))
|
|
20
11
|
* improve autocomplete search results ([#3596](https://github.com/thebyte9/blaze/issues/3596)) ([d667764](https://github.com/thebyte9/blaze/commit/d6677641019abca34bae640aa4c857696c11ae4e))
|
|
21
|
-
* update tests ([f86218f](https://github.com/thebyte9/blaze/commit/f86218f88a7348f68a07685a8f49ba459aac1b1b))
|
|
22
|
-
* update tests ([8fd2675](https://github.com/thebyte9/blaze/commit/8fd2675624126e5a23ecc0af3202d08c46667441))
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
### Features
|
|
26
|
-
|
|
27
|
-
* add admin global search styles update first iteration ([7623917](https://github.com/thebyte9/blaze/commit/7623917e64b670f7d1fc12688af6ed39735da89e))
|
|
28
|
-
* add admin syle feedback ([56c01fd](https://github.com/thebyte9/blaze/commit/56c01fdf825a570143d4bc0c54fbcd970adc28ae))
|
|
29
|
-
* add search admin sidebar testsuite ([ca043fa](https://github.com/thebyte9/blaze/commit/ca043fa43835bd07cf50bae41af3d11e7be089b6))
|
|
30
|
-
* add search sidebar filter by entity ([e8b5423](https://github.com/thebyte9/blaze/commit/e8b542354ce47143635411da07bb640b91bf7fdf))
|
|
31
|
-
* add updated snapshots ([a0444bd](https://github.com/thebyte9/blaze/commit/a0444bd0d4e2f78753ac069067d39f3f6e741832))
|
|
32
|
-
* amend PR and fix scroll loop issue ([8583497](https://github.com/thebyte9/blaze/commit/85834974cafb45bb87f00f14a99b3fae3a818cfb))
|
|
33
|
-
* remove duplicated search results and add usedebounce to improve search performance ([9aad827](https://github.com/thebyte9/blaze/commit/9aad827e7e5aaf3be84d34343d79e6b1ecbead2c))
|
|
34
12
|
|
|
35
13
|
|
|
36
14
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.array.iterator.js");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
5
7
|
require("core-js/modules/es.string.iterator.js");
|
|
6
8
|
|
|
7
9
|
require("core-js/modules/es.weak-map.js");
|
|
@@ -21,32 +23,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
21
23
|
});
|
|
22
24
|
exports["default"] = void 0;
|
|
23
25
|
|
|
24
|
-
require("core-js/modules/es.array.map.js");
|
|
25
|
-
|
|
26
26
|
require("core-js/modules/es.array.slice.js");
|
|
27
27
|
|
|
28
28
|
require("core-js/modules/es.array.includes.js");
|
|
29
29
|
|
|
30
30
|
require("core-js/modules/es.string.includes.js");
|
|
31
31
|
|
|
32
|
-
require("core-js/modules/es.array.some.js");
|
|
33
|
-
|
|
34
|
-
require("core-js/modules/es.object.to-string.js");
|
|
35
|
-
|
|
36
|
-
require("core-js/modules/es.array.filter.js");
|
|
37
|
-
|
|
38
|
-
require("core-js/modules/es.array.concat.js");
|
|
39
|
-
|
|
40
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
41
|
-
|
|
42
32
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
43
33
|
|
|
44
34
|
var _react = _interopRequireWildcard(require("react"));
|
|
45
35
|
|
|
46
36
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
47
37
|
|
|
48
|
-
var _customHooks = require("@blaze-react/utils/lib/customHooks");
|
|
49
|
-
|
|
50
38
|
var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
|
|
51
39
|
|
|
52
40
|
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
@@ -57,8 +45,6 @@ var _SearchResults = _interopRequireDefault(require("./SearchResults"));
|
|
|
57
45
|
|
|
58
46
|
var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
|
|
59
47
|
|
|
60
|
-
var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
|
|
61
|
-
|
|
62
48
|
var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
|
|
63
49
|
|
|
64
50
|
var _constants = require("../../constants");
|
|
@@ -73,39 +59,25 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
73
59
|
searchTerm = _useState2[0],
|
|
74
60
|
setSearchTerm = _useState2[1];
|
|
75
61
|
|
|
76
|
-
var _useState3 = (0, _react.useState)(true),
|
|
77
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
78
|
-
openSearchSideBar = _useState4[0],
|
|
79
|
-
setOpenSearchSideBar = _useState4[1];
|
|
80
|
-
|
|
81
|
-
var _useState5 = (0, _react.useState)([]),
|
|
82
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
83
|
-
entityValues = _useState6[0],
|
|
84
|
-
setEntityValues = _useState6[1];
|
|
85
|
-
|
|
86
62
|
var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
|
|
87
63
|
_useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
|
|
88
64
|
recentSearches = _useLocalStorage2[0],
|
|
89
65
|
setRecentSearches = _useLocalStorage2[1];
|
|
90
66
|
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
displaySearchModalFrame =
|
|
94
|
-
setDisplaySearchModalFrame =
|
|
67
|
+
var _useState3 = (0, _react.useState)(false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
displaySearchModalFrame = _useState4[0],
|
|
70
|
+
setDisplaySearchModalFrame = _useState4[1];
|
|
95
71
|
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
enableResults =
|
|
99
|
-
setEnableResults =
|
|
72
|
+
var _useState5 = (0, _react.useState)(true),
|
|
73
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
74
|
+
enableResults = _useState6[0],
|
|
75
|
+
setEnableResults = _useState6[1];
|
|
100
76
|
|
|
101
77
|
var searchInputRef = (0, _react.useRef)(null);
|
|
102
|
-
var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
|
|
103
78
|
|
|
104
79
|
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
105
|
-
queryKey: _constants.SEARCH_ADMIN
|
|
106
|
-
entities: debouncedEntityValues.map(function (e) {
|
|
107
|
-
return e.id;
|
|
108
|
-
})
|
|
80
|
+
queryKey: _constants.SEARCH_ADMIN
|
|
109
81
|
}),
|
|
110
82
|
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
111
83
|
_useSearchResults2$ = _useSearchResults2[0],
|
|
@@ -172,46 +144,17 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
172
144
|
var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
|
|
173
145
|
'modal--show': displaySearchModalFrame
|
|
174
146
|
});
|
|
175
|
-
var searchModalSideBarClassName = (0, _classnames["default"])('modal__search__sidebar', {
|
|
176
|
-
'modal__search__sidebar--close': !openSearchSideBar
|
|
177
|
-
});
|
|
178
147
|
var isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
179
148
|
var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
180
149
|
var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
181
150
|
var showResults = enableResults && results.length;
|
|
182
|
-
|
|
183
|
-
var handleSetEntityValues = function handleSetEntityValues(newEntity) {
|
|
184
|
-
var entityExists = entityValues.some(function (entity) {
|
|
185
|
-
return entity.id === newEntity.id;
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
if (entityExists) {
|
|
189
|
-
setEntityValues(entityValues.filter(function (entity) {
|
|
190
|
-
return entity.id !== newEntity.id;
|
|
191
|
-
}));
|
|
192
|
-
} else {
|
|
193
|
-
setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
|
|
197
151
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
198
152
|
className: "search search--header"
|
|
199
153
|
}, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
|
|
200
154
|
toggleSearchModal: toggleSearchModal
|
|
201
155
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
202
156
|
className: searchModalResultsClassName
|
|
203
|
-
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement("div", {
|
|
204
|
-
className: "modal__search"
|
|
205
|
-
}, /*#__PURE__*/_react["default"].createElement(_SearchAdminSideBar["default"], {
|
|
206
|
-
searchModalSideBarClassName: searchModalSideBarClassName,
|
|
207
|
-
openSearchSideBar: openSearchSideBar,
|
|
208
|
-
setOpenSearchSideBar: setOpenSearchSideBar,
|
|
209
|
-
handleSetEntityValues: handleSetEntityValues,
|
|
210
|
-
entityValues: entityValues,
|
|
211
|
-
setEntityValues: setEntityValues
|
|
212
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
213
|
-
className: "modal__search__content"
|
|
214
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
157
|
+
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
215
158
|
className: "modal__header modal__header--search"
|
|
216
159
|
}, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
|
|
217
160
|
toggleSearchModal: toggleSearchModal,
|
|
@@ -240,7 +183,7 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
240
183
|
total: total,
|
|
241
184
|
setQueryParams: setQueryParams,
|
|
242
185
|
closeModal: toggleSearchModal
|
|
243
|
-
}))))
|
|
186
|
+
}))));
|
|
244
187
|
};
|
|
245
188
|
|
|
246
189
|
var _default = SearchAdmin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAdmin.js","names":["SearchAdmin","useState","searchTerm","setSearchTerm","openSearchSideBar","setOpenSearchSideBar","entityValues","setEntityValues","useLocalStorage","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","useRef","debouncedEntityValues","useDebounce","useSearchResults","queryKey","SEARCH_ADMIN","entities","map","e","id","loading","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","value","target","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","classnames","searchModalSideBarClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","showResults","handleSetEntityValues","newEntity","entityExists","some","entity","filter"],"sources":["../../../src/components/SearchAdmin/SearchAdmin.js"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport classnames from 'classnames';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useLocalStorage from '../useLocalStorage';\nimport SearchBar from './SearchBar';\nimport RecentSearches from './RecentSearches';\nimport SearchResults from './SearchResults';\nimport TriggerModal from './TriggerModal';\nimport SearchAdminSideBar from './SearchAdminSideBar';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_ADMIN } from '../../constants';\n\nconst SearchAdmin = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const [openSearchSideBar, setOpenSearchSideBar] = useState(true);\n const [entityValues, setEntityValues] = useState([]);\n\n const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);\n const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);\n const [enableResults, setEnableResults] = useState(true);\n const searchInputRef = useRef(null);\n const debouncedEntityValues = useDebounce(entityValues, 500);\n const [{ loading, results, total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN,\n entities: debouncedEntityValues.map(e => e.id)\n });\n\n useEffect(\n () => {\n if (searchInputRef && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n },\n [displaySearchModalFrame]\n );\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\n const search = ({ value }) => {\n if (!value) return;\n !enableResults && setEnableResults(true);\n const MAX_RECENT_SEARCHES = 5;\n const recentSearchesCopy = recentSearches.slice();\n\n if (!recentSearchesCopy.includes(value)) {\n recentSearchesCopy.push(value);\n if (recentSearchesCopy.length > MAX_RECENT_SEARCHES) {\n recentSearchesCopy.shift();\n }\n }\n\n setRecentSearches(recentSearchesCopy);\n setQueryParams({ value });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n if (!searchTerm) return clear();\n search({ value: searchTerm });\n }\n };\n\n const clear = () => {\n setSearchTerm('');\n setEnableResults(false);\n };\n\n const searchModalResultsClassName = classnames('modal modal--full-screen modal--search', {\n 'modal--show': displaySearchModalFrame\n });\n\n const searchModalSideBarClassName = classnames('modal__search__sidebar', {\n 'modal__search__sidebar--close': !openSearchSideBar\n });\n\n const isEmptySearchTermAndData = !searchTerm && !results.length;\n const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;\n const shouldDisplayRecentSearches =\n isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;\n\n const showResults = enableResults && results.length;\n\n const handleSetEntityValues = newEntity => {\n const entityExists = entityValues.some(entity => entity.id === newEntity.id);\n if (entityExists) {\n setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));\n } else {\n setEntityValues([...entityValues, newEntity]);\n }\n };\n\n return (\n <div className=\"search search--header\">\n <TriggerModal toggleSearchModal={toggleSearchModal} />\n <div className={searchModalResultsClassName}>\n {displaySearchModalFrame && (\n <div className=\"modal__search\">\n <SearchAdminSideBar\n searchModalSideBarClassName={searchModalSideBarClassName}\n openSearchSideBar={openSearchSideBar}\n setOpenSearchSideBar={setOpenSearchSideBar}\n handleSetEntityValues={handleSetEntityValues}\n entityValues={entityValues}\n setEntityValues={setEntityValues}\n />\n <div className=\"modal__search__content\">\n <div className=\"modal__header modal__header--search\">\n <SearchBar\n toggleSearchModal={toggleSearchModal}\n handleKeyDown={handleKeyDown}\n searchInputRef={searchInputRef}\n handleSearchTerm={handleSearchTerm}\n searchTerm={searchTerm}\n search={() => search({ value: searchTerm })}\n />\n </div>\n {shouldDisplayRecentSearches ? (\n <RecentSearches\n recentSearches={recentSearches}\n handleSearchTerm={handleSearchTerm}\n search={search}\n />\n ) : (\n <>\n {!showResults && (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n )}\n </>\n )}\n {showResults && (\n <SearchResults\n currentValue={searchTerm}\n searchTerm={searchTerm}\n loading={loading}\n results={results}\n total={total}\n setQueryParams={setQueryParams}\n closeModal={toggleSearchModal}\n />\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default SearchAdmin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,GAAM;EACxB,gBAAoC,IAAAC,eAAA,EAAS,EAAT,CAApC;EAAA;EAAA,IAAOC,UAAP;EAAA,IAAmBC,aAAnB;;EACA,iBAAkD,IAAAF,eAAA,EAAS,IAAT,CAAlD;EAAA;EAAA,IAAOG,iBAAP;EAAA,IAA0BC,oBAA1B;;EACA,iBAAwC,IAAAJ,eAAA,EAAS,EAAT,CAAxC;EAAA;EAAA,IAAOK,YAAP;EAAA,IAAqBC,eAArB;;EAEA,uBAA4C,IAAAC,4BAAA,EAAgB,gBAAhB,EAAkC,EAAlC,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,iBAA8D,IAAAT,eAAA,EAAS,KAAT,CAA9D;EAAA;EAAA,IAAOU,uBAAP;EAAA,IAAgCC,0BAAhC;;EACA,iBAA0C,IAAAX,eAAA,EAAS,IAAT,CAA1C;EAAA;EAAA,IAAOY,aAAP;EAAA,IAAsBC,gBAAtB;;EACA,IAAMC,cAAc,GAAG,IAAAC,aAAA,EAAO,IAAP,CAAvB;EACA,IAAMC,qBAAqB,GAAG,IAAAC,wBAAA,EAAYZ,YAAZ,EAA0B,GAA1B,CAA9B;;EACA,wBAAsD,IAAAa,6BAAA,EAAiB;IACrEC,QAAQ,EAAEC,uBAD2D;IAErEC,QAAQ,EAAEL,qBAAqB,CAACM,GAAtB,CAA0B,UAAAC,CAAC;MAAA,OAAIA,CAAC,CAACC,EAAN;IAAA,CAA3B;EAF2D,CAAjB,CAAtD;EAAA;EAAA;EAAA,IAASC,OAAT,uBAASA,OAAT;EAAA,IAAkBC,OAAlB,uBAAkBA,OAAlB;EAAA,IAA2BC,KAA3B,uBAA2BA,KAA3B;EAAA,IAAoCC,cAApC;;EAKA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAIf,cAAc,IAAIA,cAAc,CAACgB,OAArC,EAA8C;MAC5ChB,cAAc,CAACgB,OAAf,CAAuBC,KAAvB;IACD;EACF,CALH,EAME,CAACrB,uBAAD,CANF;;EASA,IAAMsB,gBAAgB,GAAG,SAAnBA,gBAAmB,OAA2B;IAAA,IAAdC,KAAc,QAAxBC,MAAwB,CAAdD,KAAc;IAClD/B,aAAa,CAAC+B,KAAD,CAAb;EACD,CAFD;;EAGA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;IAC9BjC,aAAa,CAAC,IAAD,CAAb;IACAW,gBAAgB,CAAC,KAAD,CAAhB;IACAF,0BAA0B,CAAC,CAACD,uBAAF,CAA1B;EACD,CAJD;;EAKA,IAAM0B,OAAM,GAAG,SAATA,MAAS,QAAe;IAAA,IAAZH,KAAY,SAAZA,KAAY;IAC5B,IAAI,CAACA,KAAL,EAAY;IACZ,CAACrB,aAAD,IAAkBC,gBAAgB,CAAC,IAAD,CAAlC;IACA,IAAMwB,mBAAmB,GAAG,CAA5B;IACA,IAAMC,kBAAkB,GAAG9B,cAAc,CAAC+B,KAAf,EAA3B;;IAEA,IAAI,CAACD,kBAAkB,CAACE,QAAnB,CAA4BP,KAA5B,CAAL,EAAyC;MACvCK,kBAAkB,CAACG,IAAnB,CAAwBR,KAAxB;;MACA,IAAIK,kBAAkB,CAACI,MAAnB,GAA4BL,mBAAhC,EAAqD;QACnDC,kBAAkB,CAACK,KAAnB;MACD;IACF;;IAEDlC,iBAAiB,CAAC6B,kBAAD,CAAjB;IACAV,cAAc,CAAC;MAAEK,KAAK,EAALA;IAAF,CAAD,CAAd;EACD,CAfD;;EAiBA,IAAMW,aAAa,GAAG,SAAhBA,aAAgB,QAAa;IAAA,IAAVC,GAAU,SAAVA,GAAU;;IACjC,IAAIA,GAAG,KAAK,OAAZ,EAAqB;MACnB,IAAI,CAAC5C,UAAL,EAAiB,OAAO6C,KAAK,EAAZ;;MACjBV,OAAM,CAAC;QAAEH,KAAK,EAAEhC;MAAT,CAAD,CAAN;IACD;EACF,CALD;;EAOA,IAAM6C,KAAK,GAAG,SAARA,KAAQ,GAAM;IAClB5C,aAAa,CAAC,EAAD,CAAb;IACAW,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAHD;;EAKA,IAAMkC,2BAA2B,GAAG,IAAAC,sBAAA,EAAW,wCAAX,EAAqD;IACvF,eAAetC;EADwE,CAArD,CAApC;EAIA,IAAMuC,2BAA2B,GAAG,IAAAD,sBAAA,EAAW,wBAAX,EAAqC;IACvE,iCAAiC,CAAC7C;EADqC,CAArC,CAApC;EAIA,IAAM+C,wBAAwB,GAAG,CAACjD,UAAD,IAAe,CAACyB,OAAO,CAACgB,MAAzD;EACA,IAAMS,oCAAoC,GAAG,CAAClD,UAAD,IAAe,CAACW,aAA7D;EACA,IAAMwC,2BAA2B,GAC/BF,wBAAwB,IAAIC,oCAD9B;EAGA,IAAME,WAAW,GAAGzC,aAAa,IAAIc,OAAO,CAACgB,MAA7C;;EAEA,IAAMY,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,SAAS,EAAI;IACzC,IAAMC,YAAY,GAAGnD,YAAY,CAACoD,IAAb,CAAkB,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAAClC,EAAP,KAAc+B,SAAS,CAAC/B,EAA5B;IAAA,CAAxB,CAArB;;IACA,IAAIgC,YAAJ,EAAkB;MAChBlD,eAAe,CAACD,YAAY,CAACsD,MAAb,CAAoB,UAAAD,MAAM;QAAA,OAAIA,MAAM,CAAClC,EAAP,KAAc+B,SAAS,CAAC/B,EAA5B;MAAA,CAA1B,CAAD,CAAf;IACD,CAFD,MAEO;MACLlB,eAAe,+CAAKD,YAAL,IAAmBkD,SAAnB,GAAf;IACD;EACF,CAPD;;EASA,oBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,wBAAD;IAAc,iBAAiB,EAAEpB;EAAjC,EADF,eAEE;IAAK,SAAS,EAAEY;EAAhB,GACGrC,uBAAuB,iBACtB;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,8BAAD;IACE,2BAA2B,EAAEuC,2BAD/B;IAEE,iBAAiB,EAAE9C,iBAFrB;IAGE,oBAAoB,EAAEC,oBAHxB;IAIE,qBAAqB,EAAEkD,qBAJzB;IAKE,YAAY,EAAEjD,YALhB;IAME,eAAe,EAAEC;EANnB,EADF,eASE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,qBAAD;IACE,iBAAiB,EAAE6B,iBADrB;IAEE,aAAa,EAAES,aAFjB;IAGE,cAAc,EAAE9B,cAHlB;IAIE,gBAAgB,EAAEkB,gBAJpB;IAKE,UAAU,EAAE/B,UALd;IAME,MAAM,EAAE;MAAA,OAAMmC,OAAM,CAAC;QAAEH,KAAK,EAAEhC;MAAT,CAAD,CAAZ;IAAA;EANV,EADF,CADF,EAWGmD,2BAA2B,gBAC1B,gCAAC,0BAAD;IACE,cAAc,EAAE5C,cADlB;IAEE,gBAAgB,EAAEwB,gBAFpB;IAGE,MAAM,EAAEI;EAHV,EAD0B,gBAO1B,kEACG,CAACiB,WAAD,iBACC;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,yDADF,CADF,CAFJ,CAlBJ,EA4BGA,WAAW,iBACV,gCAAC,yBAAD;IACE,YAAY,EAAEpD,UADhB;IAEE,UAAU,EAAEA,UAFd;IAGE,OAAO,EAAEwB,OAHX;IAIE,OAAO,EAAEC,OAJX;IAKE,KAAK,EAAEC,KALT;IAME,cAAc,EAAEC,cANlB;IAOE,UAAU,EAAEO;EAPd,EA7BJ,CATF,CAFJ,CAFF,CADF;AA2DD,CAhJD;;eAkJepC,W"}
|
|
1
|
+
{"version":3,"file":"SearchAdmin.js","names":["SearchAdmin","useState","searchTerm","setSearchTerm","useLocalStorage","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","useRef","useSearchResults","queryKey","SEARCH_ADMIN","loading","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","value","target","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","classnames","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","showResults"],"sources":["../../../src/components/SearchAdmin/SearchAdmin.js"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport classnames from 'classnames';\nimport useLocalStorage from '../useLocalStorage';\nimport SearchBar from './SearchBar';\nimport RecentSearches from './RecentSearches';\nimport SearchResults from './SearchResults';\nimport TriggerModal from './TriggerModal';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_ADMIN } from '../../constants';\n\nconst SearchAdmin = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);\n const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);\n const [enableResults, setEnableResults] = useState(true);\n const searchInputRef = useRef(null);\n const [{ loading, results, total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN\n });\n\n useEffect(\n () => {\n if (searchInputRef && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n },\n [displaySearchModalFrame]\n );\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\n const search = ({ value }) => {\n if (!value) return;\n !enableResults && setEnableResults(true);\n const MAX_RECENT_SEARCHES = 5;\n const recentSearchesCopy = recentSearches.slice();\n\n if (!recentSearchesCopy.includes(value)) {\n recentSearchesCopy.push(value);\n if (recentSearchesCopy.length > MAX_RECENT_SEARCHES) {\n recentSearchesCopy.shift();\n }\n }\n\n setRecentSearches(recentSearchesCopy);\n setQueryParams({ value });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n if (!searchTerm) return clear();\n search({ value: searchTerm });\n }\n };\n\n const clear = () => {\n setSearchTerm('');\n setEnableResults(false);\n };\n\n const searchModalResultsClassName = classnames('modal modal--full-screen modal--search', {\n 'modal--show': displaySearchModalFrame\n });\n\n const isEmptySearchTermAndData = !searchTerm && !results.length;\n const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;\n const shouldDisplayRecentSearches =\n isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;\n\n const showResults = enableResults && results.length;\n\n return (\n <div className=\"search search--header\">\n <TriggerModal toggleSearchModal={toggleSearchModal} />\n <div className={searchModalResultsClassName}>\n {displaySearchModalFrame && (\n <>\n <div className=\"modal__header modal__header--search\">\n <SearchBar\n toggleSearchModal={toggleSearchModal}\n handleKeyDown={handleKeyDown}\n searchInputRef={searchInputRef}\n handleSearchTerm={handleSearchTerm}\n searchTerm={searchTerm}\n search={() => search({ value: searchTerm })}\n />\n </div>\n {shouldDisplayRecentSearches ? (\n <RecentSearches\n recentSearches={recentSearches}\n handleSearchTerm={handleSearchTerm}\n search={search}\n />\n ) : (\n <>\n {!showResults && (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n )}\n </>\n )}\n {showResults && (\n <SearchResults\n currentValue={searchTerm}\n searchTerm={searchTerm}\n loading={loading}\n results={results}\n total={total}\n setQueryParams={setQueryParams}\n closeModal={toggleSearchModal}\n />\n )}\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default SearchAdmin;\n"],"mappings":"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"}
|
|
@@ -140,9 +140,7 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
140
140
|
className: "modal__content modal__content--search"
|
|
141
141
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
142
|
className: "header header--list"
|
|
143
|
-
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
144
|
-
className: "header--list--results"
|
|
145
|
-
}, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, total, " results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
146
144
|
width: "100%",
|
|
147
145
|
height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
148
146
|
itemCount: results.length,
|
|
@@ -157,14 +155,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
157
155
|
id = _results$index.id,
|
|
158
156
|
docType = _results$index.docType,
|
|
159
157
|
updated = _results$index.updated,
|
|
160
|
-
name = _results$index.name
|
|
161
|
-
entityIdentifier = _results$index.entityIdentifier,
|
|
162
|
-
published = _results$index.published,
|
|
163
|
-
created = _results$index.created,
|
|
164
|
-
status = _results$index.status;
|
|
158
|
+
name = _results$index.name;
|
|
165
159
|
var updatedDate = updated ? getDateFormat(updated) : null;
|
|
166
|
-
var createdDate = created ? getDateFormat(created) : null;
|
|
167
|
-
var publishedDate = published ? getDateFormat(published) : null;
|
|
168
160
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
169
161
|
key: index,
|
|
170
162
|
style: style,
|
|
@@ -174,8 +166,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
174
166
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
175
167
|
className: "list__item-row list__item-row--result"
|
|
176
168
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
177
|
-
className: "
|
|
178
|
-
},
|
|
169
|
+
className: "badge badge--primary"
|
|
170
|
+
}, docType, " ", updatedDate), /*#__PURE__*/_react["default"].createElement("a", {
|
|
179
171
|
href: getNavigationRoute({
|
|
180
172
|
id: id,
|
|
181
173
|
docType: docType
|
|
@@ -186,12 +178,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
186
178
|
docType: docType
|
|
187
179
|
});
|
|
188
180
|
},
|
|
189
|
-
className: "list__item-
|
|
190
|
-
}, name)
|
|
191
|
-
className: "list__item-dates"
|
|
192
|
-
}, publishedDate && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Published: "), publishedDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Created: "), createdDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Updated: "), updatedDate)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
193
|
-
className: "list__item-status"
|
|
194
|
-
}, status && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Status: "), status)))));
|
|
181
|
+
className: "list__item-text list__item-text--result"
|
|
182
|
+
}, name))));
|
|
195
183
|
}
|
|
196
184
|
})));
|
|
197
185
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.js","names":["SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","useState","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","
|
|
1
|
+
{"version":3,"file":"SearchResults.js","names":["SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","useState","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","withRouter"],"sources":["../../../../src/components/SearchAdmin/SearchResults/SearchResults.js"],"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"],"mappings":"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"}
|
|
@@ -68,15 +68,10 @@ function useSearch(_ref) {
|
|
|
68
68
|
searchedValue = _useState4[0],
|
|
69
69
|
setSearchedValue = _useState4[1];
|
|
70
70
|
|
|
71
|
-
var _useState5 = (0, _react.useState)(
|
|
71
|
+
var _useState5 = (0, _react.useState)(null),
|
|
72
72
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var _useState7 = (0, _react.useState)(null),
|
|
77
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
78
|
-
previousOffset = _useState8[0],
|
|
79
|
-
setPreviousOffset = _useState8[1];
|
|
73
|
+
previousOffset = _useState6[0],
|
|
74
|
+
setPreviousOffset = _useState6[1];
|
|
80
75
|
|
|
81
76
|
var buildSearchQuery = _query["default"][queryKey];
|
|
82
77
|
|
|
@@ -113,7 +108,6 @@ function useSearch(_ref) {
|
|
|
113
108
|
value = queryParams.value;
|
|
114
109
|
var isNewValueSet = value && value !== searchedValue;
|
|
115
110
|
var isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
|
|
116
|
-
var notSameLength = en.length !== entities.length;
|
|
117
111
|
var parsedEntities = entities.length ? entities.map(function (entity) {
|
|
118
112
|
return {
|
|
119
113
|
match: {
|
|
@@ -122,7 +116,7 @@ function useSearch(_ref) {
|
|
|
122
116
|
};
|
|
123
117
|
}) : [];
|
|
124
118
|
|
|
125
|
-
if (isNewValueSet || isNewOffsetSet
|
|
119
|
+
if (isNewValueSet || isNewOffsetSet) {
|
|
126
120
|
getSearchResults({
|
|
127
121
|
variables: {
|
|
128
122
|
limit: limit,
|
|
@@ -149,9 +143,8 @@ function useSearch(_ref) {
|
|
|
149
143
|
});
|
|
150
144
|
setSearchedValue(value);
|
|
151
145
|
setPreviousOffset(offset);
|
|
152
|
-
setEn(entities);
|
|
153
146
|
}
|
|
154
|
-
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields
|
|
147
|
+
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields]);
|
|
155
148
|
return [{
|
|
156
149
|
searchedValue: queryParams.value,
|
|
157
150
|
loading: loading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.js","names":["useSearch","queryKey","resultKeys","entities","fields","useState","limit","offset","value","queryParams","setParams","searchedValue","setSearchedValue","
|
|
1
|
+
{"version":3,"file":"useSearch.js","names":["useSearch","queryKey","resultKeys","entities","fields","useState","limit","offset","value","queryParams","setParams","searchedValue","setSearchedValue","previousOffset","setPreviousOffset","buildSearchQuery","searchQueries","useLazyQuery","ssr","getSearchResults","loading","data","search","results","total","jsonResults","handleQueryParams","newQueryParams","useEffect","isNewValueSet","isNewOffsetSet","parsedEntities","length","map","entity","match","docType","variables","rawQuery","query","bool","must","query_string","type","default_operator","should"],"sources":["../../../src/components/useSearch/useSearch.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useLazyQuery } from '@apollo/client';\nimport searchQueries from '../../application/query';\n\nfunction useSearch({ queryKey, resultKeys, entities = [], fields }) {\n const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });\n const [searchedValue, setSearchedValue] = useState(null);\n const [previousOffset, setPreviousOffset] = useState(null);\n const buildSearchQuery = searchQueries[queryKey];\n const [\n getSearchResults,\n {\n loading,\n data: { search: { results, jsonResults, total } } = {\n search: { results: [], total: 0 }\n }\n }\n ] = useLazyQuery(buildSearchQuery({ resultKeys }), { ssr: false });\n // todo: remove ssr: false once this bug is resolved https://github.com/apollographql/apollo-client/issues/9108\n // without ssr: false clients can hang in ssr.\n\n const handleQueryParams = newQueryParams => {\n setParams({ ...queryParams, ...newQueryParams });\n };\n\n useEffect(\n () => {\n const { limit, offset, value } = queryParams;\n const isNewValueSet = value && value !== searchedValue;\n const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (isNewValueSet || isNewOffsetSet) {\n getSearchResults({\n variables: {\n limit,\n offset,\n rawQuery: {\n query: {\n bool: {\n must: [\n {\n query_string: {\n query: value,\n fields,\n type: 'most_fields',\n default_operator: 'AND'\n }\n },\n {\n bool: {\n should: parsedEntities\n }\n }\n ]\n }\n }\n }\n }\n });\n setSearchedValue(value);\n setPreviousOffset(offset);\n }\n },\n [\n queryParams,\n queryParams.limit,\n queryParams.value,\n queryParams.offset,\n searchedValue,\n previousOffset,\n getSearchResults,\n entities,\n fields\n ]\n );\n\n return [\n { searchedValue: queryParams.value, loading, data: { results: results || jsonResults, total } },\n handleQueryParams\n ];\n}\n\nexport default useSearch;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,SAASA,SAAT,OAAoE;EAAA,IAA/CC,QAA+C,QAA/CA,QAA+C;EAAA,IAArCC,UAAqC,QAArCA,UAAqC;EAAA,yBAAzBC,QAAyB;EAAA,IAAzBA,QAAyB,8BAAd,EAAc;EAAA,IAAVC,MAAU,QAAVA,MAAU;;EAClE,gBAAiC,IAAAC,eAAA,EAAS;IAAEC,KAAK,EAAE,EAAT;IAAaC,MAAM,EAAE,CAArB;IAAwBC,KAAK,EAAE;EAA/B,CAAT,CAAjC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,SAApB;;EACA,iBAA0C,IAAAL,eAAA,EAAS,IAAT,CAA1C;EAAA;EAAA,IAAOM,aAAP;EAAA,IAAsBC,gBAAtB;;EACA,iBAA4C,IAAAP,eAAA,EAAS,IAAT,CAA5C;EAAA;EAAA,IAAOQ,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,IAAMC,gBAAgB,GAAGC,iBAAA,CAAcf,QAAd,CAAzB;;EACA,oBAQI,IAAAgB,oBAAA,EAAaF,gBAAgB,CAAC;IAAEb,UAAU,EAAVA;EAAF,CAAD,CAA7B,EAA+C;IAAEgB,GAAG,EAAE;EAAP,CAA/C,CARJ;EAAA;EAAA,IACEC,gBADF;EAAA;EAAA,IAGIC,OAHJ,mBAGIA,OAHJ;EAAA,2CAIIC,IAJJ;;EAAA,yDAIwD;IAClDC,MAAM,EAAE;MAAEC,OAAO,EAAE,EAAX;MAAeC,KAAK,EAAE;IAAtB;EAD0C,CAJxD;EAAA,iDAIYF,MAJZ;EAAA,IAIsBC,OAJtB,yBAIsBA,OAJtB;EAAA,IAI+BE,WAJ/B,yBAI+BA,WAJ/B;EAAA,IAI4CD,KAJ5C,yBAI4CA,KAJ5C,CALkE,CAclE;EACA;;EAEA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,cAAc,EAAI;IAC1CjB,SAAS,iCAAMD,WAAN,GAAsBkB,cAAtB,EAAT;EACD,CAFD;;EAIA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAQtB,KAAR,GAAiCG,WAAjC,CAAQH,KAAR;IAAA,IAAeC,MAAf,GAAiCE,WAAjC,CAAeF,MAAf;IAAA,IAAuBC,KAAvB,GAAiCC,WAAjC,CAAuBD,KAAvB;IACA,IAAMqB,aAAa,GAAGrB,KAAK,IAAIA,KAAK,KAAKG,aAAzC;IACA,IAAMmB,cAAc,GAAGjB,cAAc,KAAK,IAAnB,IAA2BN,MAAM,KAAKM,cAA7D;IACA,IAAMkB,cAAc,GAAG5B,QAAQ,CAAC6B,MAAT,GACnB7B,QAAQ,CAAC8B,GAAT,CAAa,UAAAC,MAAM;MAAA,OAAK;QACtBC,KAAK,EAAE;UAAEC,OAAO,EAAEF;QAAX;MADe,CAAL;IAAA,CAAnB,CADmB,GAInB,EAJJ;;IAMA,IAAIL,aAAa,IAAIC,cAArB,EAAqC;MACnCX,gBAAgB,CAAC;QACfkB,SAAS,EAAE;UACT/B,KAAK,EAALA,KADS;UAETC,MAAM,EAANA,MAFS;UAGT+B,QAAQ,EAAE;YACRC,KAAK,EAAE;cACLC,IAAI,EAAE;gBACJC,IAAI,EAAE,CACJ;kBACEC,YAAY,EAAE;oBACZH,KAAK,EAAE/B,KADK;oBAEZJ,MAAM,EAANA,MAFY;oBAGZuC,IAAI,EAAE,aAHM;oBAIZC,gBAAgB,EAAE;kBAJN;gBADhB,CADI,EASJ;kBACEJ,IAAI,EAAE;oBACJK,MAAM,EAAEd;kBADJ;gBADR,CATI;cADF;YADD;UADC;QAHD;MADI,CAAD,CAAhB;MA2BAnB,gBAAgB,CAACJ,KAAD,CAAhB;MACAM,iBAAiB,CAACP,MAAD,CAAjB;IACD;EACF,CA1CH,EA2CE,CACEE,WADF,EAEEA,WAAW,CAACH,KAFd,EAGEG,WAAW,CAACD,KAHd,EAIEC,WAAW,CAACF,MAJd,EAKEI,aALF,EAMEE,cANF,EAOEM,gBAPF,EAQEhB,QARF,EASEC,MATF,CA3CF;EAwDA,OAAO,CACL;IAAEO,aAAa,EAAEF,WAAW,CAACD,KAA7B;IAAoCY,OAAO,EAAPA,OAApC;IAA6CC,IAAI,EAAE;MAAEE,OAAO,EAAEA,OAAO,IAAIE,WAAtB;MAAmCD,KAAK,EAALA;IAAnC;EAAnD,CADK,EAELE,iBAFK,CAAP;AAID;;eAEc1B,S"}
|
|
@@ -27,10 +27,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
27
27
|
});
|
|
28
28
|
exports["default"] = void 0;
|
|
29
29
|
|
|
30
|
+
require("core-js/modules/es.array.concat.js");
|
|
31
|
+
|
|
30
32
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
33
|
|
|
34
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
35
|
+
|
|
32
36
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
33
37
|
|
|
38
|
+
var _react = require("react");
|
|
39
|
+
|
|
34
40
|
var _useSearch3 = _interopRequireDefault(require("../useSearch"));
|
|
35
41
|
|
|
36
42
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -58,7 +64,25 @@ function useSearchResults(_ref) {
|
|
|
58
64
|
total = _useSearch2$$data.total,
|
|
59
65
|
setParams = _useSearch2[1];
|
|
60
66
|
|
|
67
|
+
var _useState = (0, _react.useState)([]),
|
|
68
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
69
|
+
currentResults = _useState2[0],
|
|
70
|
+
setCurrentResults = _useState2[1];
|
|
71
|
+
|
|
72
|
+
var _useState3 = (0, _react.useState)([]),
|
|
73
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
74
|
+
allResults = _useState4[0],
|
|
75
|
+
setAllResults = _useState4[1];
|
|
76
|
+
|
|
77
|
+
(0, _react.useEffect)(function () {
|
|
78
|
+
if (currentResults.length !== results.length) {
|
|
79
|
+
setAllResults([].concat((0, _toConsumableArray2["default"])(allResults), (0, _toConsumableArray2["default"])(results)));
|
|
80
|
+
setCurrentResults(results);
|
|
81
|
+
}
|
|
82
|
+
}, [allResults, currentResults, currentResults.length, results]);
|
|
83
|
+
|
|
61
84
|
var clearList = function clearList(params) {
|
|
85
|
+
setAllResults([]);
|
|
62
86
|
setParams(_objectSpread(_objectSpread({}, params), {}, {
|
|
63
87
|
offset: 0
|
|
64
88
|
}));
|
|
@@ -70,7 +94,7 @@ function useSearchResults(_ref) {
|
|
|
70
94
|
|
|
71
95
|
return [{
|
|
72
96
|
loading: loading,
|
|
73
|
-
results:
|
|
97
|
+
results: allResults,
|
|
74
98
|
total: total
|
|
75
99
|
}, setQueryParams];
|
|
76
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchResults.js","names":["useSearchResults","queryKey","resultKeys","entities","fields","useSearch","searchedValue","loading","data","results","total","setParams","clearList","params","offset","setQueryParams","value"],"sources":["../../../src/components/useSearchResults/useSearchResults.js"],"sourcesContent":["import useSearch from '../useSearch';\n\nfunction useSearchResults({ queryKey, resultKeys, entities, fields }) {\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n const clearList = params => {\n setParams({ ...params, offset: 0 });\n };\n\n const setQueryParams = params => {\n params.value !== searchedValue ? clearList(params) : setParams(params);\n };\n\n return [{ loading, results, total }, setQueryParams];\n}\n\nexport default useSearchResults;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSearchResults.js","names":["useSearchResults","queryKey","resultKeys","entities","fields","useSearch","searchedValue","loading","data","results","total","setParams","useState","currentResults","setCurrentResults","allResults","setAllResults","useEffect","length","clearList","params","offset","setQueryParams","value"],"sources":["../../../src/components/useSearchResults/useSearchResults.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport useSearch from '../useSearch';\n\nfunction useSearchResults({ queryKey, resultKeys, entities, fields }) {\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n const [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, currentResults.length, results]\n );\n\n const clearList = params => {\n setAllResults([]);\n setParams({ ...params, offset: 0 });\n };\n\n const setQueryParams = params => {\n params.value !== searchedValue ? clearList(params) : setParams(params);\n };\n\n return [{ loading, results: allResults, total }, setQueryParams];\n}\n\nexport default useSearchResults;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,SAASA,gBAAT,OAAsE;EAAA,IAA1CC,QAA0C,QAA1CA,QAA0C;EAAA,IAAhCC,UAAgC,QAAhCA,UAAgC;EAAA,IAApBC,QAAoB,QAApBA,QAAoB;EAAA,IAAVC,MAAU,QAAVA,MAAU;;EACpE,iBAOI,IAAAC,sBAAA,EAAU;IAAEJ,QAAQ,EAARA,QAAF;IAAYC,UAAU,EAAVA,UAAZ;IAAwBC,QAAQ,EAARA,QAAxB;IAAkCC,MAAM,EAANA;EAAlC,CAAV,CAPJ;EAAA;EAAA;EAAA,IAEIE,aAFJ,gBAEIA,aAFJ;EAAA,IAGIC,OAHJ,gBAGIA,OAHJ;EAAA,qCAIIC,IAJJ;EAAA,IAIYC,OAJZ,qBAIYA,OAJZ;EAAA,IAIqBC,KAJrB,qBAIqBA,KAJrB;EAAA,IAMEC,SANF;;EAQA,gBAA4C,IAAAC,eAAA,EAAS,EAAT,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,iBAAoC,IAAAF,eAAA,EAAS,EAAT,CAApC;EAAA;EAAA,IAAOG,UAAP;EAAA,IAAmBC,aAAnB;;EAEA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAIJ,cAAc,CAACK,MAAf,KAA0BT,OAAO,CAACS,MAAtC,EAA8C;MAC5CF,aAAa,+CAAKD,UAAL,uCAAoBN,OAApB,GAAb;MACAK,iBAAiB,CAACL,OAAD,CAAjB;IACD;EACF,CANH,EAOE,CAACM,UAAD,EAAaF,cAAb,EAA6BA,cAAc,CAACK,MAA5C,EAAoDT,OAApD,CAPF;;EAUA,IAAMU,SAAS,GAAG,SAAZA,SAAY,CAAAC,MAAM,EAAI;IAC1BJ,aAAa,CAAC,EAAD,CAAb;IACAL,SAAS,iCAAMS,MAAN;MAAcC,MAAM,EAAE;IAAtB,GAAT;EACD,CAHD;;EAKA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAF,MAAM,EAAI;IAC/BA,MAAM,CAACG,KAAP,KAAiBjB,aAAjB,GAAiCa,SAAS,CAACC,MAAD,CAA1C,GAAqDT,SAAS,CAACS,MAAD,CAA9D;EACD,CAFD;;EAIA,OAAO,CAAC;IAAEb,OAAO,EAAPA,OAAF;IAAWE,OAAO,EAAEM,UAApB;IAAgCL,KAAK,EAALA;EAAhC,CAAD,EAA0CY,cAA1C,CAAP;AACD;;eAEctB,gB"}
|
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect } from 'react';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
|
-
import { useDebounce } from '@blaze-react/utils/lib/customHooks';
|
|
4
3
|
import useLocalStorage from '../useLocalStorage';
|
|
5
4
|
import SearchBar from './SearchBar';
|
|
6
5
|
import RecentSearches from './RecentSearches';
|
|
7
6
|
import SearchResults from './SearchResults';
|
|
8
7
|
import TriggerModal from './TriggerModal';
|
|
9
|
-
import SearchAdminSideBar from './SearchAdminSideBar';
|
|
10
8
|
import useSearchResults from '../useSearchResults';
|
|
11
9
|
import { SEARCH_ADMIN } from '../../constants';
|
|
12
10
|
|
|
13
11
|
const SearchAdmin = () => {
|
|
14
12
|
const [searchTerm, setSearchTerm] = useState('');
|
|
15
|
-
const [openSearchSideBar, setOpenSearchSideBar] = useState(true);
|
|
16
|
-
const [entityValues, setEntityValues] = useState([]);
|
|
17
13
|
const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);
|
|
18
14
|
const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);
|
|
19
15
|
const [enableResults, setEnableResults] = useState(true);
|
|
20
16
|
const searchInputRef = useRef(null);
|
|
21
|
-
const debouncedEntityValues = useDebounce(entityValues, 500);
|
|
22
17
|
const [{
|
|
23
18
|
loading,
|
|
24
19
|
results,
|
|
25
20
|
total
|
|
26
21
|
}, setQueryParams] = useSearchResults({
|
|
27
|
-
queryKey: SEARCH_ADMIN
|
|
28
|
-
entities: debouncedEntityValues.map(e => e.id)
|
|
22
|
+
queryKey: SEARCH_ADMIN
|
|
29
23
|
});
|
|
30
24
|
useEffect(() => {
|
|
31
25
|
if (searchInputRef && searchInputRef.current) {
|
|
@@ -88,42 +82,17 @@ const SearchAdmin = () => {
|
|
|
88
82
|
const searchModalResultsClassName = classnames('modal modal--full-screen modal--search', {
|
|
89
83
|
'modal--show': displaySearchModalFrame
|
|
90
84
|
});
|
|
91
|
-
const searchModalSideBarClassName = classnames('modal__search__sidebar', {
|
|
92
|
-
'modal__search__sidebar--close': !openSearchSideBar
|
|
93
|
-
});
|
|
94
85
|
const isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
95
86
|
const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
96
87
|
const shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
97
88
|
const showResults = enableResults && results.length;
|
|
98
|
-
|
|
99
|
-
const handleSetEntityValues = newEntity => {
|
|
100
|
-
const entityExists = entityValues.some(entity => entity.id === newEntity.id);
|
|
101
|
-
|
|
102
|
-
if (entityExists) {
|
|
103
|
-
setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));
|
|
104
|
-
} else {
|
|
105
|
-
setEntityValues([...entityValues, newEntity]);
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
|
|
109
89
|
return /*#__PURE__*/React.createElement("div", {
|
|
110
90
|
className: "search search--header"
|
|
111
91
|
}, /*#__PURE__*/React.createElement(TriggerModal, {
|
|
112
92
|
toggleSearchModal: toggleSearchModal
|
|
113
93
|
}), /*#__PURE__*/React.createElement("div", {
|
|
114
94
|
className: searchModalResultsClassName
|
|
115
|
-
}, displaySearchModalFrame && /*#__PURE__*/React.createElement("div", {
|
|
116
|
-
className: "modal__search"
|
|
117
|
-
}, /*#__PURE__*/React.createElement(SearchAdminSideBar, {
|
|
118
|
-
searchModalSideBarClassName: searchModalSideBarClassName,
|
|
119
|
-
openSearchSideBar: openSearchSideBar,
|
|
120
|
-
setOpenSearchSideBar: setOpenSearchSideBar,
|
|
121
|
-
handleSetEntityValues: handleSetEntityValues,
|
|
122
|
-
entityValues: entityValues,
|
|
123
|
-
setEntityValues: setEntityValues
|
|
124
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
125
|
-
className: "modal__search__content"
|
|
126
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
95
|
+
}, displaySearchModalFrame && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
127
96
|
className: "modal__header modal__header--search"
|
|
128
97
|
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
129
98
|
toggleSearchModal: toggleSearchModal,
|
|
@@ -150,7 +119,7 @@ const SearchAdmin = () => {
|
|
|
150
119
|
total: total,
|
|
151
120
|
setQueryParams: setQueryParams,
|
|
152
121
|
closeModal: toggleSearchModal
|
|
153
|
-
}))))
|
|
122
|
+
}))));
|
|
154
123
|
};
|
|
155
124
|
|
|
156
125
|
export default SearchAdmin;
|