@blaze-cms/plugin-search-ui 0.127.0-project-admin-customisations.0 → 0.127.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 +2 -18
- package/lib/components/SearchAdmin/SearchAdmin.js +12 -57
- 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 -11
- package/lib/components/useSearch/useSearch.js.map +1 -1
- package/lib/components/useSearchResults/useSearchResults.js +19 -1
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchAdmin.js +3 -31
- 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 +6 -6
- 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 -113
- package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +0 -1
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +0 -12
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +0 -1
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +0 -76
- 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,25 +3,9 @@
|
|
|
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.127.0
|
|
6
|
+
# [0.127.0](https://github.com/thebyte9/blaze/compare/v0.126.1...v0.127.0) (2023-02-10)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
### Bug Fixes
|
|
10
|
-
|
|
11
|
-
* add updated searchAdmin test ([4db3178](https://github.com/thebyte9/blaze/commit/4db3178f8c95182d107a1d151a793a0987c8d7b8))
|
|
12
|
-
* update tests ([f86218f](https://github.com/thebyte9/blaze/commit/f86218f88a7348f68a07685a8f49ba459aac1b1b))
|
|
13
|
-
* update tests ([8fd2675](https://github.com/thebyte9/blaze/commit/8fd2675624126e5a23ecc0af3202d08c46667441))
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
### Features
|
|
17
|
-
|
|
18
|
-
* add admin global search styles update first iteration ([7623917](https://github.com/thebyte9/blaze/commit/7623917e64b670f7d1fc12688af6ed39735da89e))
|
|
19
|
-
* add admin syle feedback ([56c01fd](https://github.com/thebyte9/blaze/commit/56c01fdf825a570143d4bc0c54fbcd970adc28ae))
|
|
20
|
-
* add search admin sidebar testsuite ([ca043fa](https://github.com/thebyte9/blaze/commit/ca043fa43835bd07cf50bae41af3d11e7be089b6))
|
|
21
|
-
* add search sidebar filter by entity ([e8b5423](https://github.com/thebyte9/blaze/commit/e8b542354ce47143635411da07bb640b91bf7fdf))
|
|
22
|
-
* add updated snapshots ([a0444bd](https://github.com/thebyte9/blaze/commit/a0444bd0d4e2f78753ac069067d39f3f6e741832))
|
|
23
|
-
* amend PR and fix scroll loop issue ([8583497](https://github.com/thebyte9/blaze/commit/85834974cafb45bb87f00f14a99b3fae3a818cfb))
|
|
24
|
-
* remove duplicated search results and add usedebounce to improve search performance ([9aad827](https://github.com/thebyte9/blaze/commit/9aad827e7e5aaf3be84d34343d79e6b1ecbead2c))
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/plugin-search-ui
|
|
25
9
|
|
|
26
10
|
|
|
27
11
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
require("core-js/modules/es.object.to-string.js");
|
|
4
5
|
require("core-js/modules/es.string.iterator.js");
|
|
5
6
|
require("core-js/modules/es.weak-map.js");
|
|
6
7
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
@@ -12,25 +13,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
13
|
value: true
|
|
13
14
|
});
|
|
14
15
|
exports["default"] = void 0;
|
|
15
|
-
require("core-js/modules/es.array.map.js");
|
|
16
16
|
require("core-js/modules/es.array.slice.js");
|
|
17
17
|
require("core-js/modules/es.array.includes.js");
|
|
18
18
|
require("core-js/modules/es.string.includes.js");
|
|
19
|
-
require("core-js/modules/es.array.some.js");
|
|
20
|
-
require("core-js/modules/es.object.to-string.js");
|
|
21
|
-
require("core-js/modules/es.array.filter.js");
|
|
22
|
-
require("core-js/modules/es.array.concat.js");
|
|
23
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
24
19
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
26
21
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
-
var _customHooks = require("@blaze-react/utils/lib/customHooks");
|
|
28
22
|
var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
|
|
29
23
|
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
30
24
|
var _RecentSearches = _interopRequireDefault(require("./RecentSearches"));
|
|
31
25
|
var _SearchResults = _interopRequireDefault(require("./SearchResults"));
|
|
32
26
|
var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
|
|
33
|
-
var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
|
|
34
27
|
var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
|
|
35
28
|
var _constants = require("../../constants");
|
|
36
29
|
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); }
|
|
@@ -40,33 +33,21 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
40
33
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
34
|
searchTerm = _useState2[0],
|
|
42
35
|
setSearchTerm = _useState2[1];
|
|
43
|
-
var _useState3 = (0, _react.useState)(true),
|
|
44
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
45
|
-
openSearchSideBar = _useState4[0],
|
|
46
|
-
setOpenSearchSideBar = _useState4[1];
|
|
47
|
-
var _useState5 = (0, _react.useState)([]),
|
|
48
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
49
|
-
entityValues = _useState6[0],
|
|
50
|
-
setEntityValues = _useState6[1];
|
|
51
36
|
var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
|
|
52
37
|
_useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
|
|
53
38
|
recentSearches = _useLocalStorage2[0],
|
|
54
39
|
setRecentSearches = _useLocalStorage2[1];
|
|
55
|
-
var
|
|
56
|
-
|
|
57
|
-
displaySearchModalFrame =
|
|
58
|
-
setDisplaySearchModalFrame =
|
|
59
|
-
var
|
|
60
|
-
|
|
61
|
-
enableResults =
|
|
62
|
-
setEnableResults =
|
|
40
|
+
var _useState3 = (0, _react.useState)(false),
|
|
41
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
42
|
+
displaySearchModalFrame = _useState4[0],
|
|
43
|
+
setDisplaySearchModalFrame = _useState4[1];
|
|
44
|
+
var _useState5 = (0, _react.useState)(true),
|
|
45
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
46
|
+
enableResults = _useState6[0],
|
|
47
|
+
setEnableResults = _useState6[1];
|
|
63
48
|
var searchInputRef = (0, _react.useRef)(null);
|
|
64
|
-
var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
|
|
65
49
|
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
66
|
-
queryKey: _constants.SEARCH_ADMIN
|
|
67
|
-
entities: debouncedEntityValues.map(function (e) {
|
|
68
|
-
return e.id;
|
|
69
|
-
})
|
|
50
|
+
queryKey: _constants.SEARCH_ADMIN
|
|
70
51
|
}),
|
|
71
52
|
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
72
53
|
_useSearchResults2$ = _useSearchResults2[0],
|
|
@@ -121,43 +102,17 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
121
102
|
var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
|
|
122
103
|
'modal--show': displaySearchModalFrame
|
|
123
104
|
});
|
|
124
|
-
var searchModalSideBarClassName = (0, _classnames["default"])('modal__search__sidebar', {
|
|
125
|
-
'modal__search__sidebar--close': !openSearchSideBar
|
|
126
|
-
});
|
|
127
105
|
var isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
128
106
|
var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
129
107
|
var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
130
108
|
var showResults = enableResults && results.length;
|
|
131
|
-
var handleSetEntityValues = function handleSetEntityValues(newEntity) {
|
|
132
|
-
var entityExists = entityValues.some(function (entity) {
|
|
133
|
-
return entity.id === newEntity.id;
|
|
134
|
-
});
|
|
135
|
-
if (entityExists) {
|
|
136
|
-
setEntityValues(entityValues.filter(function (entity) {
|
|
137
|
-
return entity.id !== newEntity.id;
|
|
138
|
-
}));
|
|
139
|
-
} else {
|
|
140
|
-
setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
109
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
144
110
|
className: "search search--header"
|
|
145
111
|
}, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
|
|
146
112
|
toggleSearchModal: toggleSearchModal
|
|
147
113
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
148
114
|
className: searchModalResultsClassName
|
|
149
|
-
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement("div", {
|
|
150
|
-
className: "modal__search"
|
|
151
|
-
}, /*#__PURE__*/_react["default"].createElement(_SearchAdminSideBar["default"], {
|
|
152
|
-
searchModalSideBarClassName: searchModalSideBarClassName,
|
|
153
|
-
openSearchSideBar: openSearchSideBar,
|
|
154
|
-
setOpenSearchSideBar: setOpenSearchSideBar,
|
|
155
|
-
handleSetEntityValues: handleSetEntityValues,
|
|
156
|
-
entityValues: entityValues,
|
|
157
|
-
setEntityValues: setEntityValues
|
|
158
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
|
-
className: "modal__search__content"
|
|
160
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
115
|
+
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
116
|
className: "modal__header modal__header--search"
|
|
162
117
|
}, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
|
|
163
118
|
toggleSearchModal: toggleSearchModal,
|
|
@@ -186,7 +141,7 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
186
141
|
total: total,
|
|
187
142
|
setQueryParams: setQueryParams,
|
|
188
143
|
closeModal: toggleSearchModal
|
|
189
|
-
}))))
|
|
144
|
+
}))));
|
|
190
145
|
};
|
|
191
146
|
var _default = SearchAdmin;
|
|
192
147
|
exports["default"] = _default;
|
|
@@ -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":"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"}
|
|
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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"}
|
|
@@ -103,9 +103,7 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
103
103
|
className: "modal__content modal__content--search"
|
|
104
104
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
105
105
|
className: "header header--list"
|
|
106
|
-
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
107
|
-
className: "header--list--results"
|
|
108
|
-
}, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
106
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, total, " results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
109
107
|
width: "100%",
|
|
110
108
|
height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
111
109
|
itemCount: results.length,
|
|
@@ -120,14 +118,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
120
118
|
id = _results$index.id,
|
|
121
119
|
docType = _results$index.docType,
|
|
122
120
|
updated = _results$index.updated,
|
|
123
|
-
name = _results$index.name
|
|
124
|
-
entityIdentifier = _results$index.entityIdentifier,
|
|
125
|
-
published = _results$index.published,
|
|
126
|
-
created = _results$index.created,
|
|
127
|
-
status = _results$index.status;
|
|
121
|
+
name = _results$index.name;
|
|
128
122
|
var updatedDate = updated ? getDateFormat(updated) : null;
|
|
129
|
-
var createdDate = created ? getDateFormat(created) : null;
|
|
130
|
-
var publishedDate = published ? getDateFormat(published) : null;
|
|
131
123
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
132
124
|
key: index,
|
|
133
125
|
style: style,
|
|
@@ -137,8 +129,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
137
129
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
138
130
|
className: "list__item-row list__item-row--result"
|
|
139
131
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
140
|
-
className: "
|
|
141
|
-
},
|
|
132
|
+
className: "badge badge--primary"
|
|
133
|
+
}, docType, " ", updatedDate), /*#__PURE__*/_react["default"].createElement("a", {
|
|
142
134
|
href: getNavigationRoute({
|
|
143
135
|
id: id,
|
|
144
136
|
docType: docType
|
|
@@ -149,12 +141,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
149
141
|
docType: docType
|
|
150
142
|
});
|
|
151
143
|
},
|
|
152
|
-
className: "list__item-
|
|
153
|
-
}, name)
|
|
154
|
-
className: "list__item-dates"
|
|
155
|
-
}, 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", {
|
|
156
|
-
className: "list__item-status"
|
|
157
|
-
}, status && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Status: "), status)))));
|
|
144
|
+
className: "list__item-text list__item-text--result"
|
|
145
|
+
}, name))));
|
|
158
146
|
}
|
|
159
147
|
})));
|
|
160
148
|
};
|
|
@@ -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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"}
|
|
@@ -43,14 +43,10 @@ function useSearch(_ref) {
|
|
|
43
43
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
44
44
|
searchedValue = _useState4[0],
|
|
45
45
|
setSearchedValue = _useState4[1];
|
|
46
|
-
var _useState5 = (0, _react.useState)(
|
|
46
|
+
var _useState5 = (0, _react.useState)(null),
|
|
47
47
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var _useState7 = (0, _react.useState)(null),
|
|
51
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
52
|
-
previousOffset = _useState8[0],
|
|
53
|
-
setPreviousOffset = _useState8[1];
|
|
48
|
+
previousOffset = _useState6[0],
|
|
49
|
+
setPreviousOffset = _useState6[1];
|
|
54
50
|
var buildSearchQuery = _query["default"][queryKey];
|
|
55
51
|
var _useLazyQuery = (0, _client.useLazyQuery)(buildSearchQuery({
|
|
56
52
|
resultKeys: resultKeys
|
|
@@ -84,7 +80,6 @@ function useSearch(_ref) {
|
|
|
84
80
|
value = queryParams.value;
|
|
85
81
|
var isNewValueSet = value && value !== searchedValue;
|
|
86
82
|
var isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
|
|
87
|
-
var notSameLength = en.length !== entities.length;
|
|
88
83
|
var parsedEntities = entities.length ? entities.map(function (entity) {
|
|
89
84
|
return {
|
|
90
85
|
match: {
|
|
@@ -92,7 +87,7 @@ function useSearch(_ref) {
|
|
|
92
87
|
}
|
|
93
88
|
};
|
|
94
89
|
}) : [];
|
|
95
|
-
if (isNewValueSet || isNewOffsetSet
|
|
90
|
+
if (isNewValueSet || isNewOffsetSet) {
|
|
96
91
|
getSearchResults({
|
|
97
92
|
variables: {
|
|
98
93
|
limit: limit,
|
|
@@ -119,9 +114,8 @@ function useSearch(_ref) {
|
|
|
119
114
|
});
|
|
120
115
|
setSearchedValue(value);
|
|
121
116
|
setPreviousOffset(offset);
|
|
122
|
-
setEn(entities);
|
|
123
117
|
}
|
|
124
|
-
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields
|
|
118
|
+
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields]);
|
|
125
119
|
return [{
|
|
126
120
|
searchedValue: queryParams.value,
|
|
127
121
|
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":"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"}
|
|
@@ -15,8 +15,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
17
|
exports["default"] = void 0;
|
|
18
|
+
require("core-js/modules/es.array.concat.js");
|
|
18
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
19
21
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
22
|
+
var _react = require("react");
|
|
20
23
|
var _useSearch3 = _interopRequireDefault(require("../useSearch"));
|
|
21
24
|
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; }
|
|
22
25
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -39,7 +42,22 @@ function useSearchResults(_ref) {
|
|
|
39
42
|
results = _useSearch2$$data.results,
|
|
40
43
|
total = _useSearch2$$data.total,
|
|
41
44
|
setParams = _useSearch2[1];
|
|
45
|
+
var _useState = (0, _react.useState)([]),
|
|
46
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
47
|
+
currentResults = _useState2[0],
|
|
48
|
+
setCurrentResults = _useState2[1];
|
|
49
|
+
var _useState3 = (0, _react.useState)([]),
|
|
50
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
51
|
+
allResults = _useState4[0],
|
|
52
|
+
setAllResults = _useState4[1];
|
|
53
|
+
(0, _react.useEffect)(function () {
|
|
54
|
+
if (currentResults.length !== results.length) {
|
|
55
|
+
setAllResults([].concat((0, _toConsumableArray2["default"])(allResults), (0, _toConsumableArray2["default"])(results)));
|
|
56
|
+
setCurrentResults(results);
|
|
57
|
+
}
|
|
58
|
+
}, [allResults, currentResults, currentResults.length, results]);
|
|
42
59
|
var clearList = function clearList(params) {
|
|
60
|
+
setAllResults([]);
|
|
43
61
|
setParams(_objectSpread(_objectSpread({}, params), {}, {
|
|
44
62
|
offset: 0
|
|
45
63
|
}));
|
|
@@ -49,7 +67,7 @@ function useSearchResults(_ref) {
|
|
|
49
67
|
};
|
|
50
68
|
return [{
|
|
51
69
|
loading: loading,
|
|
52
|
-
results:
|
|
70
|
+
results: allResults,
|
|
53
71
|
total: total
|
|
54
72
|
}, setQueryParams];
|
|
55
73
|
}
|
|
@@ -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;AAAqC;AAAA;AAErC,SAASA,gBAAgB,OAA6C;EAAA,IAA1CC,QAAQ,QAARA,QAAQ;IAAEC,UAAU,QAAVA,UAAU;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,MAAM,QAANA,MAAM;EAChE,iBAOI,IAAAC,sBAAS,EAAC;MAAEJ,QAAQ,EAARA,QAAQ;MAAEC,UAAU,EAAVA,UAAU;MAAEC,QAAQ,EAARA,QAAQ;MAAEC,MAAM,EAANA;IAAO,CAAC,CAAC;IAAA;IAAA;IALrDE,aAAa,gBAAbA,aAAa;IACbC,OAAO,gBAAPA,OAAO;IAAA,iCACPC,IAAI;IAAIC,OAAO,qBAAPA,OAAO;IAAEC,KAAK,qBAALA,KAAK;IAExBC,SAAS;EAEX,gBAA4C,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAjDC,cAAc;IAAEC,iBAAiB;EACxC,iBAAoC,IAAAF,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAzCG,UAAU;IAAEC,aAAa;EAEhC,IAAAC,gBAAS,EACP,YAAM;IACJ,IAAIJ,cAAc,CAACK,MAAM,KAAKT,OAAO,CAACS,MAAM,EAAE;MAC5CF,aAAa,+CAAKD,UAAU,uCAAKN,OAAO,GAAE;MAC1CK,iBAAiB,CAACL,OAAO,CAAC;IAC5B;EACF,CAAC,EACD,CAACM,UAAU,EAAEF,cAAc,EAAEA,cAAc,CAACK,MAAM,EAAET,OAAO,CAAC,CAC7D;EAED,IAAMU,SAAS,GAAG,SAAZA,SAAS,CAAGC,MAAM,EAAI;IAC1BJ,aAAa,CAAC,EAAE,CAAC;IACjBL,SAAS,iCAAMS,MAAM;MAAEC,MAAM,EAAE;IAAC,GAAG;EACrC,CAAC;EAED,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAGF,MAAM,EAAI;IAC/BA,MAAM,CAACG,KAAK,KAAKjB,aAAa,GAAGa,SAAS,CAACC,MAAM,CAAC,GAAGT,SAAS,CAACS,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CAAC;IAAEb,OAAO,EAAPA,OAAO;IAAEE,OAAO,EAAEM,UAAU;IAAEL,KAAK,EAALA;EAAM,CAAC,EAAEY,cAAc,CAAC;AAClE;AAAC,eAEctB,gBAAgB;AAAA"}
|
|
@@ -1,30 +1,24 @@
|
|
|
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
|
const SearchAdmin = () => {
|
|
13
11
|
const [searchTerm, setSearchTerm] = useState('');
|
|
14
|
-
const [openSearchSideBar, setOpenSearchSideBar] = useState(true);
|
|
15
|
-
const [entityValues, setEntityValues] = useState([]);
|
|
16
12
|
const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);
|
|
17
13
|
const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);
|
|
18
14
|
const [enableResults, setEnableResults] = useState(true);
|
|
19
15
|
const searchInputRef = useRef(null);
|
|
20
|
-
const debouncedEntityValues = useDebounce(entityValues, 500);
|
|
21
16
|
const [{
|
|
22
17
|
loading,
|
|
23
18
|
results,
|
|
24
19
|
total
|
|
25
20
|
}, setQueryParams] = useSearchResults({
|
|
26
|
-
queryKey: SEARCH_ADMIN
|
|
27
|
-
entities: debouncedEntityValues.map(e => e.id)
|
|
21
|
+
queryKey: SEARCH_ADMIN
|
|
28
22
|
});
|
|
29
23
|
useEffect(() => {
|
|
30
24
|
if (searchInputRef && searchInputRef.current) {
|
|
@@ -78,39 +72,17 @@ const SearchAdmin = () => {
|
|
|
78
72
|
const searchModalResultsClassName = classnames('modal modal--full-screen modal--search', {
|
|
79
73
|
'modal--show': displaySearchModalFrame
|
|
80
74
|
});
|
|
81
|
-
const searchModalSideBarClassName = classnames('modal__search__sidebar', {
|
|
82
|
-
'modal__search__sidebar--close': !openSearchSideBar
|
|
83
|
-
});
|
|
84
75
|
const isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
85
76
|
const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
86
77
|
const shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
87
78
|
const showResults = enableResults && results.length;
|
|
88
|
-
const handleSetEntityValues = newEntity => {
|
|
89
|
-
const entityExists = entityValues.some(entity => entity.id === newEntity.id);
|
|
90
|
-
if (entityExists) {
|
|
91
|
-
setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));
|
|
92
|
-
} else {
|
|
93
|
-
setEntityValues([...entityValues, newEntity]);
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
79
|
return /*#__PURE__*/React.createElement("div", {
|
|
97
80
|
className: "search search--header"
|
|
98
81
|
}, /*#__PURE__*/React.createElement(TriggerModal, {
|
|
99
82
|
toggleSearchModal: toggleSearchModal
|
|
100
83
|
}), /*#__PURE__*/React.createElement("div", {
|
|
101
84
|
className: searchModalResultsClassName
|
|
102
|
-
}, displaySearchModalFrame && /*#__PURE__*/React.createElement("div", {
|
|
103
|
-
className: "modal__search"
|
|
104
|
-
}, /*#__PURE__*/React.createElement(SearchAdminSideBar, {
|
|
105
|
-
searchModalSideBarClassName: searchModalSideBarClassName,
|
|
106
|
-
openSearchSideBar: openSearchSideBar,
|
|
107
|
-
setOpenSearchSideBar: setOpenSearchSideBar,
|
|
108
|
-
handleSetEntityValues: handleSetEntityValues,
|
|
109
|
-
entityValues: entityValues,
|
|
110
|
-
setEntityValues: setEntityValues
|
|
111
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
112
|
-
className: "modal__search__content"
|
|
113
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
}, displaySearchModalFrame && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
114
86
|
className: "modal__header modal__header--search"
|
|
115
87
|
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
116
88
|
toggleSearchModal: toggleSearchModal,
|
|
@@ -137,7 +109,7 @@ const SearchAdmin = () => {
|
|
|
137
109
|
total: total,
|
|
138
110
|
setQueryParams: setQueryParams,
|
|
139
111
|
closeModal: toggleSearchModal
|
|
140
|
-
}))))
|
|
112
|
+
}))));
|
|
141
113
|
};
|
|
142
114
|
export default SearchAdmin;
|
|
143
115
|
//# sourceMappingURL=SearchAdmin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAdmin.js","names":["React","useState","useRef","useEffect","classnames","useDebounce","useLocalStorage","SearchBar","RecentSearches","SearchResults","TriggerModal","SearchAdminSideBar","useSearchResults","SEARCH_ADMIN","SearchAdmin","searchTerm","setSearchTerm","openSearchSideBar","setOpenSearchSideBar","entityValues","setEntityValues","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","debouncedEntityValues","loading","results","total","setQueryParams","queryKey","entities","map","e","id","current","focus","handleSearchTerm","target","value","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","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":"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"}
|
|
1
|
+
{"version":3,"file":"SearchAdmin.js","names":["React","useState","useRef","useEffect","classnames","useLocalStorage","SearchBar","RecentSearches","SearchResults","TriggerModal","useSearchResults","SEARCH_ADMIN","SearchAdmin","searchTerm","setSearchTerm","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","loading","results","total","setQueryParams","queryKey","current","focus","handleSearchTerm","target","value","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","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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"}
|