@blaze-cms/plugin-search-ui 0.130.0-admin-updates.1 → 0.130.0-admin-updates.4
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 +11 -0
- package/lib/components/SearchAdmin/SearchAdmin.js +15 -5
- package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js +56 -38
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib/components/useSearchResults/useSearchResults.js +2 -0
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchAdmin.js +12 -3
- package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +27 -14
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib-es/components/useSearchResults/useSearchResults.js +2 -0
- package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
- package/package.json +3 -3
- package/src/components/SearchAdmin/SearchAdmin.js +6 -4
- package/src/components/SearchAdmin/SearchResults/SearchResults.js +35 -14
- package/src/components/useSearchResults/useSearchResults.js +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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.130.0-admin-updates.4](https://github.com/thebyte9/blaze/compare/v0.130.0-admin-updates.3...v0.130.0-admin-updates.4) (2023-06-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* fixed admin search not refreshing on entity/search change ([#3935](https://github.com/thebyte9/blaze/issues/3935)) ([3e8bffe](https://github.com/thebyte9/blaze/commit/3e8bffed0bdcc1665e21a1d2b38b74664141364f))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [0.130.0-admin-updates.1](https://github.com/thebyte9/blaze/compare/v0.130.0-admin-updates.0...v0.130.0-admin-updates.1) (2023-06-12)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @blaze-cms/plugin-search-ui
|
|
@@ -62,16 +62,18 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
62
62
|
setEnableResults = _useState10[1];
|
|
63
63
|
var searchInputRef = (0, _react.useRef)(null);
|
|
64
64
|
var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
|
|
65
|
+
var entities = debouncedEntityValues.map(function (e) {
|
|
66
|
+
return e.id;
|
|
67
|
+
});
|
|
65
68
|
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
66
69
|
queryKey: _constants.SEARCH_ADMIN,
|
|
67
|
-
entities:
|
|
68
|
-
return e.id;
|
|
69
|
-
})
|
|
70
|
+
entities: entities
|
|
70
71
|
}),
|
|
71
72
|
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
72
73
|
_useSearchResults2$ = _useSearchResults2[0],
|
|
73
74
|
loading = _useSearchResults2$.loading,
|
|
74
|
-
|
|
75
|
+
_useSearchResults2$$n = _useSearchResults2$.newResults,
|
|
76
|
+
results = _useSearchResults2$$n === void 0 ? [] : _useSearchResults2$$n,
|
|
75
77
|
total = _useSearchResults2$.total,
|
|
76
78
|
setQueryParams = _useSearchResults2[1];
|
|
77
79
|
(0, _react.useEffect)(function () {
|
|
@@ -132,10 +134,18 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
132
134
|
return entity.id === newEntity.id;
|
|
133
135
|
});
|
|
134
136
|
if (entityExists) {
|
|
137
|
+
setQueryParams({
|
|
138
|
+
value: searchTerm,
|
|
139
|
+
offset: 0
|
|
140
|
+
});
|
|
135
141
|
setEntityValues(entityValues.filter(function (entity) {
|
|
136
142
|
return entity.id !== newEntity.id;
|
|
137
143
|
}));
|
|
138
144
|
} else {
|
|
145
|
+
setQueryParams({
|
|
146
|
+
value: searchTerm,
|
|
147
|
+
offset: 0
|
|
148
|
+
});
|
|
139
149
|
setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
|
|
140
150
|
}
|
|
141
151
|
};
|
|
@@ -175,7 +185,7 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
175
185
|
search: _search
|
|
176
186
|
}), enableResults && /*#__PURE__*/_react["default"].createElement(_SearchResults["default"], {
|
|
177
187
|
currentValue: searchTerm,
|
|
178
|
-
|
|
188
|
+
entities: entities,
|
|
179
189
|
loading: loading,
|
|
180
190
|
results: results,
|
|
181
191
|
total: total,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchAdmin.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_customHooks","_useLocalStorage3","_SearchBar","_RecentSearches","_SearchResults","_TriggerModal","_SearchAdminSideBar","_useSearchResults3","_constants","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SearchAdmin","_useState","useState","_useState2","_slicedToArray2","searchTerm","setSearchTerm","_useState3","_useState4","openSearchSideBar","setOpenSearchSideBar","_useState5","_useState6","entityValues","setEntityValues","_useLocalStorage","useLocalStorage","_useLocalStorage2","recentSearches","setRecentSearches","_useState7","_useState8","displaySearchModalFrame","setDisplaySearchModalFrame","_useState9","_useState10","enableResults","setEnableResults","searchInputRef","useRef","debouncedEntityValues","useDebounce","_useSearchResults","useSearchResults","queryKey","SEARCH_ADMIN","entities","map","e","id","_useSearchResults2","_useSearchResults2$","loading","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","_ref","value","target","toggleSearchModal","search","_ref2","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","_ref3","clear","searchModalResultsClassName","classnames","searchModalSideBarClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","handleSetEntityValues","newEntity","entityExists","some","entity","filter","concat","_toConsumableArray2","createElement","className","currentValue","closeModal","_default","exports"],"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\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\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 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 {enableResults && (\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","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_customHooks","_useLocalStorage3","_SearchBar","_RecentSearches","_SearchResults","_TriggerModal","_SearchAdminSideBar","_useSearchResults3","_constants","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SearchAdmin","_useState","useState","_useState2","_slicedToArray2","searchTerm","setSearchTerm","_useState3","_useState4","openSearchSideBar","setOpenSearchSideBar","_useState5","_useState6","entityValues","setEntityValues","_useLocalStorage","useLocalStorage","_useLocalStorage2","recentSearches","setRecentSearches","_useState7","_useState8","displaySearchModalFrame","setDisplaySearchModalFrame","_useState9","_useState10","enableResults","setEnableResults","searchInputRef","useRef","debouncedEntityValues","useDebounce","entities","map","e","id","_useSearchResults","useSearchResults","queryKey","SEARCH_ADMIN","_useSearchResults2","_useSearchResults2$","loading","_useSearchResults2$$n","newResults","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","_ref","value","target","toggleSearchModal","search","_ref2","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","_ref3","clear","searchModalResultsClassName","classnames","searchModalSideBarClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","handleSetEntityValues","newEntity","entityExists","some","entity","offset","filter","concat","_toConsumableArray2","createElement","className","currentValue","closeModal","_default","exports"],"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 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 entities = debouncedEntityValues.map(e => e.id);\n const [{ loading, newResults: results = [], total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN,\n entities\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\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\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 handleSetEntityValues = newEntity => {\n const entityExists = entityValues.some(entity => entity.id === newEntity.id);\n if (entityExists) {\n setQueryParams({ value: searchTerm, offset: 0 });\n setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));\n } else {\n setQueryParams({ value: searchTerm, offset: 0 });\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 {enableResults && (\n <SearchResults\n currentValue={searchTerm}\n entities={entities}\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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"}
|
|
@@ -14,9 +14,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
});
|
|
15
15
|
exports["default"] = void 0;
|
|
16
16
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
17
|
+
require("core-js/modules/es.array.join.js");
|
|
18
|
+
require("core-js/modules/es.array.map.js");
|
|
19
|
+
require("core-js/modules/es.array.concat.js");
|
|
17
20
|
require("core-js/modules/es.array.includes.js");
|
|
18
21
|
require("core-js/modules/es.string.includes.js");
|
|
19
|
-
require("core-js/modules/es.array.concat.js");
|
|
20
22
|
require("core-js/modules/es.date.to-string.js");
|
|
21
23
|
require("core-js/modules/es.array.slice.js");
|
|
22
24
|
require("core-js/modules/es.function.name.js");
|
|
@@ -35,6 +37,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
35
37
|
|
|
36
38
|
var SearchResults = function SearchResults(_ref) {
|
|
37
39
|
var currentValue = _ref.currentValue,
|
|
40
|
+
entities = _ref.entities,
|
|
38
41
|
loading = _ref.loading,
|
|
39
42
|
results = _ref.results,
|
|
40
43
|
total = _ref.total,
|
|
@@ -49,36 +52,50 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
49
52
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
50
53
|
currentIndex = _useState4[0],
|
|
51
54
|
setCurrentIndex = _useState4[1];
|
|
52
|
-
var _useState5 = (0, _react.useState)(
|
|
55
|
+
var _useState5 = (0, _react.useState)(''),
|
|
53
56
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
54
57
|
currentResults = _useState6[0],
|
|
55
58
|
setCurrentResults = _useState6[1];
|
|
56
|
-
var _useState7 = (0, _react.useState)(
|
|
59
|
+
var _useState7 = (0, _react.useState)([]),
|
|
57
60
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
allResults = _useState8[0],
|
|
62
|
+
setAllResults = _useState8[1];
|
|
63
|
+
var _useState9 = (0, _react.useState)(''),
|
|
64
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
65
|
+
currentParams = _useState10[0],
|
|
66
|
+
setCurrentParams = _useState10[1];
|
|
60
67
|
(0, _react.useEffect)(function () {
|
|
61
68
|
if (!loading) {
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (
|
|
69
|
+
var newResults = results.map(function (_ref2) {
|
|
70
|
+
var id = _ref2.id;
|
|
71
|
+
return id;
|
|
72
|
+
}).join(',');
|
|
73
|
+
if (currentResults !== newResults) {
|
|
74
|
+
var newParams = "".concat(currentValue, ",").concat(entities.join(','));
|
|
75
|
+
if (newParams !== currentParams) {
|
|
76
|
+
setAllResults(results);
|
|
77
|
+
setCurrentParams(newParams);
|
|
78
|
+
if (verifiedRanges.length) setVerifiedRanges([]);
|
|
79
|
+
} else {
|
|
80
|
+
setAllResults(allResults.concat(results));
|
|
81
|
+
}
|
|
82
|
+
setCurrentResults(newResults);
|
|
83
|
+
}
|
|
67
84
|
}
|
|
68
|
-
}, [loading, results, total, verifiedRanges]);
|
|
85
|
+
}, [allResults, currentParams, currentResults, currentValue, entities, loading, results, total, verifiedRanges.length]);
|
|
69
86
|
var handleRenderedItems = /*#__PURE__*/function () {
|
|
70
|
-
var
|
|
87
|
+
var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref3) {
|
|
71
88
|
var startIndex, rowsLength, loadIndex;
|
|
72
89
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
73
90
|
while (1) switch (_context.prev = _context.next) {
|
|
74
91
|
case 0:
|
|
75
|
-
startIndex =
|
|
76
|
-
rowsLength =
|
|
92
|
+
startIndex = _ref3.startIndex;
|
|
93
|
+
rowsLength = allResults.length;
|
|
77
94
|
loadIndex = Math.floor(rowsLength / 2) - _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER;
|
|
78
95
|
if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {
|
|
79
96
|
setQueryParams({
|
|
80
97
|
value: currentValue,
|
|
81
|
-
offset:
|
|
98
|
+
offset: allResults.length
|
|
82
99
|
});
|
|
83
100
|
setVerifiedRanges([].concat((0, _toConsumableArray2["default"])(verifiedRanges), [loadIndex]));
|
|
84
101
|
setCurrentIndex(startIndex + _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER);
|
|
@@ -90,17 +107,17 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
90
107
|
}, _callee);
|
|
91
108
|
}));
|
|
92
109
|
return function handleRenderedItems(_x) {
|
|
93
|
-
return
|
|
110
|
+
return _ref4.apply(this, arguments);
|
|
94
111
|
};
|
|
95
112
|
}();
|
|
96
|
-
var getNavigationRoute = function getNavigationRoute(
|
|
97
|
-
var id = _ref4.id,
|
|
98
|
-
docType = _ref4.docType;
|
|
99
|
-
return docType === _constants.FILE ? "/media/edit/".concat(id) : "/data-listing/".concat(docType, "/update/").concat(id);
|
|
100
|
-
};
|
|
101
|
-
var navigate = function navigate(_ref5) {
|
|
113
|
+
var getNavigationRoute = function getNavigationRoute(_ref5) {
|
|
102
114
|
var id = _ref5.id,
|
|
103
115
|
docType = _ref5.docType;
|
|
116
|
+
return docType === _constants.FILE ? "/media/edit/".concat(id) : "/data-listing/".concat(docType, "/update/").concat(id);
|
|
117
|
+
};
|
|
118
|
+
var navigate = function navigate(_ref6) {
|
|
119
|
+
var id = _ref6.id,
|
|
120
|
+
docType = _ref6.docType;
|
|
104
121
|
history.push(getNavigationRoute({
|
|
105
122
|
id: id,
|
|
106
123
|
docType: docType
|
|
@@ -114,7 +131,7 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
114
131
|
var year = String(newDate.getYear()).slice(-2);
|
|
115
132
|
return "".concat(day, ".").concat(month, ".").concat(year);
|
|
116
133
|
};
|
|
117
|
-
if (!
|
|
134
|
+
if (!allResults.length) return /*#__PURE__*/_react["default"].createElement("div", {
|
|
118
135
|
className: "list list--search"
|
|
119
136
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
120
137
|
className: "header header--list"
|
|
@@ -125,26 +142,26 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
125
142
|
className: "header header--list"
|
|
126
143
|
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
127
144
|
className: "header--list--results"
|
|
128
|
-
}, "About ", /*#__PURE__*/_react["default"].createElement("b", null,
|
|
145
|
+
}, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
129
146
|
width: "100%",
|
|
130
147
|
height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
131
|
-
itemCount:
|
|
148
|
+
itemCount: allResults.length,
|
|
132
149
|
itemSize: _constants.SEARCH_RESULTS_ITEM_SIZE,
|
|
133
150
|
overscanCount: _constants.SEARCH_RESULTS_OVER_SCAN_BUFFER,
|
|
134
151
|
scrollToIndex: currentIndex,
|
|
135
152
|
onItemsRendered: handleRenderedItems,
|
|
136
|
-
renderItem: function renderItem(
|
|
137
|
-
var index =
|
|
138
|
-
style =
|
|
139
|
-
var
|
|
140
|
-
id =
|
|
141
|
-
docType =
|
|
142
|
-
updated =
|
|
143
|
-
name =
|
|
144
|
-
entityIdentifier =
|
|
145
|
-
published =
|
|
146
|
-
created =
|
|
147
|
-
status =
|
|
153
|
+
renderItem: function renderItem(_ref7) {
|
|
154
|
+
var index = _ref7.index,
|
|
155
|
+
style = _ref7.style;
|
|
156
|
+
var _allResults$index = allResults[index],
|
|
157
|
+
id = _allResults$index.id,
|
|
158
|
+
docType = _allResults$index.docType,
|
|
159
|
+
updated = _allResults$index.updated,
|
|
160
|
+
name = _allResults$index.name,
|
|
161
|
+
entityIdentifier = _allResults$index.entityIdentifier,
|
|
162
|
+
published = _allResults$index.published,
|
|
163
|
+
created = _allResults$index.created,
|
|
164
|
+
status = _allResults$index.status;
|
|
148
165
|
var updatedDate = updated ? getDateFormat(updated) : null;
|
|
149
166
|
var createdDate = created ? getDateFormat(created) : null;
|
|
150
167
|
var publishedDate = published ? getDateFormat(published) : null;
|
|
@@ -185,7 +202,8 @@ SearchResults.propTypes = {
|
|
|
185
202
|
setQueryParams: _propTypes["default"].func.isRequired,
|
|
186
203
|
closeModal: _propTypes["default"].func.isRequired,
|
|
187
204
|
history: _propTypes["default"].object.isRequired,
|
|
188
|
-
currentValue: _propTypes["default"].string.isRequired
|
|
205
|
+
currentValue: _propTypes["default"].string.isRequired,
|
|
206
|
+
entities: _propTypes["default"].array.isRequired
|
|
189
207
|
};
|
|
190
208
|
var _default = (0, _reactRouterDom.withRouter)(SearchResults);
|
|
191
209
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactTinyVirtualList","_reactRouterDom","_constants","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SearchResults","_ref","currentValue","loading","results","total","setQueryParams","closeModal","history","_useState","useState","_useState2","_slicedToArray2","verifiedRanges","setVerifiedRanges","_useState3","_useState4","currentIndex","setCurrentIndex","_useState5","_useState6","currentResults","setCurrentResults","_useState7","_useState8","currentTotal","setCurrentTotal","useEffect","_verifiedRanges","lowestRange","length","handleRenderedItems","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","_ref2","startIndex","rowsLength","loadIndex","wrap","_callee$","_context","prev","next","Math","floor","SEARCH_RESULTS_OVER_SCAN_BUFFER","includes","value","offset","concat","_toConsumableArray2","stop","_x","apply","arguments","getNavigationRoute","_ref4","id","docType","FILE","navigate","_ref5","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","createElement","className","width","height","window","innerHeight","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","itemCount","itemSize","SEARCH_RESULTS_ITEM_SIZE","overscanCount","scrollToIndex","onItemsRendered","renderItem","_ref6","index","style","_currentResults$index","updated","name","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","href","onClick","propTypes","PropTypes","bool","isRequired","array","number","func","object","string","_default","withRouter","exports"],"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, useEffect } 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 const [currentResults, setCurrentResults] = useState([]);\n const [currentTotal, setCurrentTotal] = useState(0);\n\n useEffect(\n () => {\n if (!loading) {\n const [lowestRange] = verifiedRanges;\n setCurrentTotal(total);\n setCurrentResults(results);\n if (lowestRange > results.length) setVerifiedRanges([]);\n }\n },\n [loading, results, total, verifiedRanges]\n );\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 if (!currentResults.length)\n return (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n );\n\n return (\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2 className=\"header--list--results\">\n About <b>{currentTotal}</b> search keywords results\n </h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={currentResults.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 {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = currentResults[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n const createdDate = created ? getDateFormat(created) : null;\n const publishedDate = published ? getDateFormat(published) : 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=\"list__item-identifier\">{entityIdentifier}</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-link\">\n {name}\n </a>\n\n <div className=\"list__item-dates\">\n {publishedDate && (\n <span>\n <b>Published: </b>\n {publishedDate}\n </span>\n )}\n <span>\n <b>Created: </b>\n {createdDate}\n </span>\n <span>\n <b>Updated: </b>\n {updatedDate}\n </span>\n </div>\n <div className=\"list__item-status\">\n {status && (\n <span>\n <b>Status: </b>\n {status}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }}\n />\n {loading && <span>Loading...</span>}\n </div>\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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"}
|
|
1
|
+
{"version":3,"file":"SearchResults.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactTinyVirtualList","_reactRouterDom","_constants","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SearchResults","_ref","currentValue","entities","loading","results","total","setQueryParams","closeModal","history","_useState","useState","_useState2","_slicedToArray2","verifiedRanges","setVerifiedRanges","_useState3","_useState4","currentIndex","setCurrentIndex","_useState5","_useState6","currentResults","setCurrentResults","_useState7","_useState8","allResults","setAllResults","_useState9","_useState10","currentParams","setCurrentParams","useEffect","newResults","map","_ref2","id","join","newParams","concat","length","handleRenderedItems","_ref4","_asyncToGenerator2","_regenerator","mark","_callee","_ref3","startIndex","rowsLength","loadIndex","wrap","_callee$","_context","prev","next","Math","floor","SEARCH_RESULTS_OVER_SCAN_BUFFER","includes","value","offset","_toConsumableArray2","stop","_x","apply","arguments","getNavigationRoute","_ref5","docType","FILE","navigate","_ref6","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","createElement","className","width","height","window","innerHeight","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","itemCount","itemSize","SEARCH_RESULTS_ITEM_SIZE","overscanCount","scrollToIndex","onItemsRendered","renderItem","_ref7","index","style","_allResults$index","updated","name","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","href","onClick","propTypes","PropTypes","bool","isRequired","array","number","func","object","string","_default","withRouter","exports"],"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, useEffect } 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 entities,\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 const [currentResults, setCurrentResults] = useState('');\n const [allResults, setAllResults] = useState([]);\n const [currentParams, setCurrentParams] = useState('');\n\n useEffect(\n () => {\n if (!loading) {\n const newResults = results.map(({ id }) => id).join(',');\n if (currentResults !== newResults) {\n const newParams = `${currentValue},${entities.join(',')}`;\n if (newParams !== currentParams) {\n setAllResults(results);\n setCurrentParams(newParams);\n if (verifiedRanges.length) setVerifiedRanges([]);\n } else {\n setAllResults(allResults.concat(results));\n }\n setCurrentResults(newResults);\n }\n }\n },\n [\n allResults,\n currentParams,\n currentResults,\n currentValue,\n entities,\n loading,\n results,\n total,\n verifiedRanges.length\n ]\n );\n\n const handleRenderedItems = async ({ startIndex }) => {\n const rowsLength = allResults.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: allResults.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 if (!allResults.length)\n return (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n );\n\n return (\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2 className=\"header--list--results\">\n About <b>{total}</b> search keywords results\n </h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={allResults.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 {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = allResults[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n const createdDate = created ? getDateFormat(created) : null;\n const publishedDate = published ? getDateFormat(published) : 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=\"list__item-identifier\">{entityIdentifier}</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-link\">\n {name}\n </a>\n\n <div className=\"list__item-dates\">\n {publishedDate && (\n <span>\n <b>Published: </b>\n {publishedDate}\n </span>\n )}\n <span>\n <b>Created: </b>\n {createdDate}\n </span>\n <span>\n <b>Updated: </b>\n {updatedDate}\n </span>\n </div>\n <div className=\"list__item-status\">\n {status && (\n <span>\n <b>Status: </b>\n {status}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }}\n />\n {loading && <span>Loading...</span>}\n </div>\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 entities: PropTypes.array.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchResults.js","names":["_react","require","_useSearch3","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useSearchResults","_ref","queryKey","resultKeys","entities","fields","_useState","useState","_useState2","_slicedToArray2","currentResults","setCurrentResults","_useState3","_useState4","allResults","setAllResults","_useSearch","useSearch","_useSearch2","_useSearch2$","searchedValue","loading","_useSearch2$$data","data","results","total","setParams","useEffect","concat","_toConsumableArray2","clearList","params","offset","setQueryParams","value","_default","exports"],"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 [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, 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 return [{
|
|
1
|
+
{"version":3,"file":"useSearchResults.js","names":["_react","require","_useSearch3","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useSearchResults","_ref","queryKey","resultKeys","entities","fields","_useState","useState","_useState2","_slicedToArray2","currentResults","setCurrentResults","_useState3","_useState4","allResults","setAllResults","_useSearch","useSearch","_useSearch2","_useSearch2$","searchedValue","loading","_useSearch2$$data","data","results","total","setParams","useEffect","concat","_toConsumableArray2","clearList","params","offset","setQueryParams","value","newResults","_default","exports"],"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 [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, 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 [\n {\n loading,\n results: allResults,\n currentResults,\n newResults: results,\n total\n },\n setQueryParams\n ];\n}\n\nexport default useSearchResults;\n"],"mappings":"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"}
|
|
@@ -18,13 +18,14 @@ const SearchAdmin = () => {
|
|
|
18
18
|
const [enableResults, setEnableResults] = useState(true);
|
|
19
19
|
const searchInputRef = useRef(null);
|
|
20
20
|
const debouncedEntityValues = useDebounce(entityValues, 500);
|
|
21
|
+
const entities = debouncedEntityValues.map(e => e.id);
|
|
21
22
|
const [{
|
|
22
23
|
loading,
|
|
23
|
-
results,
|
|
24
|
+
newResults: results = [],
|
|
24
25
|
total
|
|
25
26
|
}, setQueryParams] = useSearchResults({
|
|
26
27
|
queryKey: SEARCH_ADMIN,
|
|
27
|
-
entities
|
|
28
|
+
entities
|
|
28
29
|
});
|
|
29
30
|
useEffect(() => {
|
|
30
31
|
if (searchInputRef && searchInputRef.current) {
|
|
@@ -87,8 +88,16 @@ const SearchAdmin = () => {
|
|
|
87
88
|
const handleSetEntityValues = newEntity => {
|
|
88
89
|
const entityExists = entityValues.some(entity => entity.id === newEntity.id);
|
|
89
90
|
if (entityExists) {
|
|
91
|
+
setQueryParams({
|
|
92
|
+
value: searchTerm,
|
|
93
|
+
offset: 0
|
|
94
|
+
});
|
|
90
95
|
setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));
|
|
91
96
|
} else {
|
|
97
|
+
setQueryParams({
|
|
98
|
+
value: searchTerm,
|
|
99
|
+
offset: 0
|
|
100
|
+
});
|
|
92
101
|
setEntityValues([...entityValues, newEntity]);
|
|
93
102
|
}
|
|
94
103
|
};
|
|
@@ -126,7 +135,7 @@ const SearchAdmin = () => {
|
|
|
126
135
|
search: search
|
|
127
136
|
}), enableResults && /*#__PURE__*/React.createElement(SearchResults, {
|
|
128
137
|
currentValue: searchTerm,
|
|
129
|
-
|
|
138
|
+
entities: entities,
|
|
130
139
|
loading: loading,
|
|
131
140
|
results: results,
|
|
132
141
|
total: total,
|
|
@@ -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","handleSetEntityValues","newEntity","entityExists","some","entity","filter","createElement","className","currentValue","closeModal"],"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\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\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 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 {enableResults && (\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","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","entities","map","e","id","loading","newResults","results","total","setQueryParams","queryKey","current","focus","handleSearchTerm","target","value","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","searchModalSideBarClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","handleSetEntityValues","newEntity","entityExists","some","entity","offset","filter","createElement","className","currentValue","closeModal"],"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 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 entities = debouncedEntityValues.map(e => e.id);\n const [{ loading, newResults: results = [], total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN,\n entities\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\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\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 handleSetEntityValues = newEntity => {\n const entityExists = entityValues.some(entity => entity.id === newEntity.id);\n if (entityExists) {\n setQueryParams({ value: searchTerm, offset: 0 });\n setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));\n } else {\n setQueryParams({ value: searchTerm, offset: 0 });\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 {enableResults && (\n <SearchResults\n currentValue={searchTerm}\n entities={entities}\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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"}
|
|
@@ -7,6 +7,7 @@ import { withRouter } from 'react-router-dom';
|
|
|
7
7
|
import { SEARCH_RESULTS_OVER_SCAN_BUFFER, SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST, SEARCH_RESULTS_ITEM_SIZE, FILE } from '../../../constants';
|
|
8
8
|
const SearchResults = ({
|
|
9
9
|
currentValue,
|
|
10
|
+
entities,
|
|
10
11
|
loading,
|
|
11
12
|
results,
|
|
12
13
|
total,
|
|
@@ -16,25 +17,36 @@ const SearchResults = ({
|
|
|
16
17
|
}) => {
|
|
17
18
|
const [verifiedRanges, setVerifiedRanges] = useState([]);
|
|
18
19
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
19
|
-
const [currentResults, setCurrentResults] = useState(
|
|
20
|
-
const [
|
|
20
|
+
const [currentResults, setCurrentResults] = useState('');
|
|
21
|
+
const [allResults, setAllResults] = useState([]);
|
|
22
|
+
const [currentParams, setCurrentParams] = useState('');
|
|
21
23
|
useEffect(() => {
|
|
22
24
|
if (!loading) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (
|
|
25
|
+
const newResults = results.map(({
|
|
26
|
+
id
|
|
27
|
+
}) => id).join(',');
|
|
28
|
+
if (currentResults !== newResults) {
|
|
29
|
+
const newParams = `${currentValue},${entities.join(',')}`;
|
|
30
|
+
if (newParams !== currentParams) {
|
|
31
|
+
setAllResults(results);
|
|
32
|
+
setCurrentParams(newParams);
|
|
33
|
+
if (verifiedRanges.length) setVerifiedRanges([]);
|
|
34
|
+
} else {
|
|
35
|
+
setAllResults(allResults.concat(results));
|
|
36
|
+
}
|
|
37
|
+
setCurrentResults(newResults);
|
|
38
|
+
}
|
|
27
39
|
}
|
|
28
|
-
}, [loading, results, total, verifiedRanges]);
|
|
40
|
+
}, [allResults, currentParams, currentResults, currentValue, entities, loading, results, total, verifiedRanges.length]);
|
|
29
41
|
const handleRenderedItems = async ({
|
|
30
42
|
startIndex
|
|
31
43
|
}) => {
|
|
32
|
-
const rowsLength =
|
|
44
|
+
const rowsLength = allResults.length;
|
|
33
45
|
const loadIndex = Math.floor(rowsLength / 2) - SEARCH_RESULTS_OVER_SCAN_BUFFER;
|
|
34
46
|
if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {
|
|
35
47
|
setQueryParams({
|
|
36
48
|
value: currentValue,
|
|
37
|
-
offset:
|
|
49
|
+
offset: allResults.length
|
|
38
50
|
});
|
|
39
51
|
setVerifiedRanges([...verifiedRanges, loadIndex]);
|
|
40
52
|
setCurrentIndex(startIndex + SEARCH_RESULTS_OVER_SCAN_BUFFER);
|
|
@@ -61,7 +73,7 @@ const SearchResults = ({
|
|
|
61
73
|
const year = String(newDate.getYear()).slice(-2);
|
|
62
74
|
return `${day}.${month}.${year}`;
|
|
63
75
|
};
|
|
64
|
-
if (!
|
|
76
|
+
if (!allResults.length) return /*#__PURE__*/React.createElement("div", {
|
|
65
77
|
className: "list list--search"
|
|
66
78
|
}, /*#__PURE__*/React.createElement("div", {
|
|
67
79
|
className: "header header--list"
|
|
@@ -72,10 +84,10 @@ const SearchResults = ({
|
|
|
72
84
|
className: "header header--list"
|
|
73
85
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
74
86
|
className: "header--list--results"
|
|
75
|
-
}, "About ", /*#__PURE__*/React.createElement("b", null,
|
|
87
|
+
}, "About ", /*#__PURE__*/React.createElement("b", null, total), " search keywords results")), /*#__PURE__*/React.createElement(VirtualList, {
|
|
76
88
|
width: "100%",
|
|
77
89
|
height: window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
78
|
-
itemCount:
|
|
90
|
+
itemCount: allResults.length,
|
|
79
91
|
itemSize: SEARCH_RESULTS_ITEM_SIZE,
|
|
80
92
|
overscanCount: SEARCH_RESULTS_OVER_SCAN_BUFFER,
|
|
81
93
|
scrollToIndex: currentIndex,
|
|
@@ -93,7 +105,7 @@ const SearchResults = ({
|
|
|
93
105
|
published,
|
|
94
106
|
created,
|
|
95
107
|
status
|
|
96
|
-
} =
|
|
108
|
+
} = allResults[index];
|
|
97
109
|
const updatedDate = updated ? getDateFormat(updated) : null;
|
|
98
110
|
const createdDate = created ? getDateFormat(created) : null;
|
|
99
111
|
const publishedDate = published ? getDateFormat(published) : null;
|
|
@@ -132,7 +144,8 @@ SearchResults.propTypes = {
|
|
|
132
144
|
setQueryParams: PropTypes.func.isRequired,
|
|
133
145
|
closeModal: PropTypes.func.isRequired,
|
|
134
146
|
history: PropTypes.object.isRequired,
|
|
135
|
-
currentValue: PropTypes.string.isRequired
|
|
147
|
+
currentValue: PropTypes.string.isRequired,
|
|
148
|
+
entities: PropTypes.array.isRequired
|
|
136
149
|
};
|
|
137
150
|
export default withRouter(SearchResults);
|
|
138
151
|
//# sourceMappingURL=SearchResults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.js","names":["React","useState","useEffect","PropTypes","VirtualList","withRouter","SEARCH_RESULTS_OVER_SCAN_BUFFER","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","FILE","SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","verifiedRanges","setVerifiedRanges","currentIndex","setCurrentIndex","currentResults","setCurrentResults","currentTotal","setCurrentTotal","lowestRange","length","handleRenderedItems","startIndex","rowsLength","loadIndex","Math","floor","includes","value","offset","getNavigationRoute","id","docType","navigate","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","createElement","className","width","height","window","innerHeight","itemCount","itemSize","overscanCount","scrollToIndex","onItemsRendered","renderItem","index","style","updated","name","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","key","href","onClick","propTypes","bool","isRequired","array","number","func","object","string"],"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, useEffect } 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 const [currentResults, setCurrentResults] = useState([]);\n const [currentTotal, setCurrentTotal] = useState(0);\n\n useEffect(\n () => {\n if (!loading) {\n const [lowestRange] = verifiedRanges;\n setCurrentTotal(total);\n setCurrentResults(results);\n if (lowestRange > results.length) setVerifiedRanges([]);\n }\n },\n [loading, results, total, verifiedRanges]\n );\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 if (!currentResults.length)\n return (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n );\n\n return (\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2 className=\"header--list--results\">\n About <b>{currentTotal}</b> search keywords results\n </h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={currentResults.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 {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = currentResults[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n const createdDate = created ? getDateFormat(created) : null;\n const publishedDate = published ? getDateFormat(published) : 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=\"list__item-identifier\">{entityIdentifier}</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-link\">\n {name}\n </a>\n\n <div className=\"list__item-dates\">\n {publishedDate && (\n <span>\n <b>Published: </b>\n {publishedDate}\n </span>\n )}\n <span>\n <b>Created: </b>\n {createdDate}\n </span>\n <span>\n <b>Updated: </b>\n {updatedDate}\n </span>\n </div>\n <div className=\"list__item-status\">\n {status && (\n <span>\n <b>Status: </b>\n {status}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }}\n />\n {loading && <span>Loading...</span>}\n </div>\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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"}
|
|
1
|
+
{"version":3,"file":"SearchResults.js","names":["React","useState","useEffect","PropTypes","VirtualList","withRouter","SEARCH_RESULTS_OVER_SCAN_BUFFER","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","FILE","SearchResults","currentValue","entities","loading","results","total","setQueryParams","closeModal","history","verifiedRanges","setVerifiedRanges","currentIndex","setCurrentIndex","currentResults","setCurrentResults","allResults","setAllResults","currentParams","setCurrentParams","newResults","map","id","join","newParams","length","concat","handleRenderedItems","startIndex","rowsLength","loadIndex","Math","floor","includes","value","offset","getNavigationRoute","docType","navigate","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","createElement","className","width","height","window","innerHeight","itemCount","itemSize","overscanCount","scrollToIndex","onItemsRendered","renderItem","index","style","updated","name","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","key","href","onClick","propTypes","bool","isRequired","array","number","func","object","string"],"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, useEffect } 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 entities,\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 const [currentResults, setCurrentResults] = useState('');\n const [allResults, setAllResults] = useState([]);\n const [currentParams, setCurrentParams] = useState('');\n\n useEffect(\n () => {\n if (!loading) {\n const newResults = results.map(({ id }) => id).join(',');\n if (currentResults !== newResults) {\n const newParams = `${currentValue},${entities.join(',')}`;\n if (newParams !== currentParams) {\n setAllResults(results);\n setCurrentParams(newParams);\n if (verifiedRanges.length) setVerifiedRanges([]);\n } else {\n setAllResults(allResults.concat(results));\n }\n setCurrentResults(newResults);\n }\n }\n },\n [\n allResults,\n currentParams,\n currentResults,\n currentValue,\n entities,\n loading,\n results,\n total,\n verifiedRanges.length\n ]\n );\n\n const handleRenderedItems = async ({ startIndex }) => {\n const rowsLength = allResults.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: allResults.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 if (!allResults.length)\n return (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n );\n\n return (\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2 className=\"header--list--results\">\n About <b>{total}</b> search keywords results\n </h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={allResults.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 {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = allResults[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n const createdDate = created ? getDateFormat(created) : null;\n const publishedDate = published ? getDateFormat(published) : 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=\"list__item-identifier\">{entityIdentifier}</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-link\">\n {name}\n </a>\n\n <div className=\"list__item-dates\">\n {publishedDate && (\n <span>\n <b>Published: </b>\n {publishedDate}\n </span>\n )}\n <span>\n <b>Created: </b>\n {createdDate}\n </span>\n <span>\n <b>Updated: </b>\n {updatedDate}\n </span>\n </div>\n <div className=\"list__item-status\">\n {status && (\n <span>\n <b>Status: </b>\n {status}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }}\n />\n {loading && <span>Loading...</span>}\n </div>\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 entities: PropTypes.array.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchResults.js","names":["useState","useEffect","useSearch","useSearchResults","queryKey","resultKeys","entities","fields","currentResults","setCurrentResults","allResults","setAllResults","searchedValue","loading","data","results","total","setParams","length","clearList","params","_objectSpread","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 [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, 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 return [{
|
|
1
|
+
{"version":3,"file":"useSearchResults.js","names":["useState","useEffect","useSearch","useSearchResults","queryKey","resultKeys","entities","fields","currentResults","setCurrentResults","allResults","setAllResults","searchedValue","loading","data","results","total","setParams","length","clearList","params","_objectSpread","offset","setQueryParams","value","newResults"],"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 [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, 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 [\n {\n loading,\n results: allResults,\n currentResults,\n newResults: results,\n total\n },\n setQueryParams\n ];\n}\n\nexport default useSearchResults;\n"],"mappings":";;;AAAA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAC3C,OAAOC,SAAS,MAAM,cAAc;AAEpC,SAASC,gBAAgBA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAE;EACpE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGT,QAAQ,CAAC,EAAE,CAAC;EACxD,MAAM,CAACU,UAAU,EAAEC,aAAa,CAAC,GAAGX,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CACJ;IACEY,aAAa;IACbC,OAAO;IACPC,IAAI,EAAE;MAAEC,OAAO;MAAEC;IAAM;EACzB,CAAC,EACDC,SAAS,CACV,GAAGf,SAAS,CAAC;IAAEE,QAAQ;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAO,CAAC,CAAC;EAEzDN,SAAS,CACP,MAAM;IACJ,IAAIO,cAAc,CAACU,MAAM,KAAKH,OAAO,CAACG,MAAM,EAAE;MAC5CP,aAAa,CAAC,CAAC,GAAGD,UAAU,EAAE,GAAGK,OAAO,CAAC,CAAC;MAC1CN,iBAAiB,CAACM,OAAO,CAAC;IAC5B;EACF,CAAC,EACD,CAACL,UAAU,EAAEF,cAAc,EAAEO,OAAO,CACtC,CAAC;EAED,MAAMI,SAAS,GAAGC,MAAM,IAAI;IAC1BT,aAAa,CAAC,EAAE,CAAC;IACjBM,SAAS,CAAAI,aAAA,CAAAA,aAAA,KAAMD,MAAM;MAAEE,MAAM,EAAE;IAAC,EAAE,CAAC;EACrC,CAAC;EAED,MAAMC,cAAc,GAAGH,MAAM,IAAI;IAC/BA,MAAM,CAACI,KAAK,KAAKZ,aAAa,GAAGO,SAAS,CAACC,MAAM,CAAC,GAAGH,SAAS,CAACG,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CACL;IACEP,OAAO;IACPE,OAAO,EAAEL,UAAU;IACnBF,cAAc;IACdiB,UAAU,EAAEV,OAAO;IACnBC;EACF,CAAC,EACDO,cAAc,CACf;AACH;AAEA,eAAepB,gBAAgB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-search-ui",
|
|
3
|
-
"version": "0.130.0-admin-updates.
|
|
3
|
+
"version": "0.130.0-admin-updates.4",
|
|
4
4
|
"description": "Blaze plugin search ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/admin-ui-utils": "0.130.0-admin-updates.
|
|
30
|
+
"@blaze-cms/admin-ui-utils": "0.130.0-admin-updates.4",
|
|
31
31
|
"@blaze-cms/core-errors": "0.130.0-admin-updates.0",
|
|
32
32
|
"@blaze-cms/setup-ui": "0.130.0-admin-updates.0",
|
|
33
33
|
"@blaze-react/button": "0.5.19",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"lib/*",
|
|
53
53
|
"lib-es/*"
|
|
54
54
|
],
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "98a86c65e9478cf90b0257d77c1e581ed707dac8"
|
|
56
56
|
}
|
|
@@ -14,15 +14,15 @@ const SearchAdmin = () => {
|
|
|
14
14
|
const [searchTerm, setSearchTerm] = useState('');
|
|
15
15
|
const [openSearchSideBar, setOpenSearchSideBar] = useState(true);
|
|
16
16
|
const [entityValues, setEntityValues] = useState([]);
|
|
17
|
-
|
|
18
17
|
const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);
|
|
19
18
|
const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);
|
|
20
19
|
const [enableResults, setEnableResults] = useState(true);
|
|
21
20
|
const searchInputRef = useRef(null);
|
|
22
21
|
const debouncedEntityValues = useDebounce(entityValues, 500);
|
|
23
|
-
const
|
|
22
|
+
const entities = debouncedEntityValues.map(e => e.id);
|
|
23
|
+
const [{ loading, newResults: results = [], total }, setQueryParams] = useSearchResults({
|
|
24
24
|
queryKey: SEARCH_ADMIN,
|
|
25
|
-
entities
|
|
25
|
+
entities
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
useEffect(
|
|
@@ -89,8 +89,10 @@ const SearchAdmin = () => {
|
|
|
89
89
|
const handleSetEntityValues = newEntity => {
|
|
90
90
|
const entityExists = entityValues.some(entity => entity.id === newEntity.id);
|
|
91
91
|
if (entityExists) {
|
|
92
|
+
setQueryParams({ value: searchTerm, offset: 0 });
|
|
92
93
|
setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));
|
|
93
94
|
} else {
|
|
95
|
+
setQueryParams({ value: searchTerm, offset: 0 });
|
|
94
96
|
setEntityValues([...entityValues, newEntity]);
|
|
95
97
|
}
|
|
96
98
|
};
|
|
@@ -130,7 +132,7 @@ const SearchAdmin = () => {
|
|
|
130
132
|
{enableResults && (
|
|
131
133
|
<SearchResults
|
|
132
134
|
currentValue={searchTerm}
|
|
133
|
-
|
|
135
|
+
entities={entities}
|
|
134
136
|
loading={loading}
|
|
135
137
|
results={results}
|
|
136
138
|
total={total}
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
|
|
14
14
|
const SearchResults = ({
|
|
15
15
|
currentValue,
|
|
16
|
+
entities,
|
|
16
17
|
loading,
|
|
17
18
|
results,
|
|
18
19
|
total,
|
|
@@ -22,26 +23,45 @@ const SearchResults = ({
|
|
|
22
23
|
}) => {
|
|
23
24
|
const [verifiedRanges, setVerifiedRanges] = useState([]);
|
|
24
25
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
25
|
-
const [currentResults, setCurrentResults] = useState(
|
|
26
|
-
const [
|
|
26
|
+
const [currentResults, setCurrentResults] = useState('');
|
|
27
|
+
const [allResults, setAllResults] = useState([]);
|
|
28
|
+
const [currentParams, setCurrentParams] = useState('');
|
|
27
29
|
|
|
28
30
|
useEffect(
|
|
29
31
|
() => {
|
|
30
32
|
if (!loading) {
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
const newResults = results.map(({ id }) => id).join(',');
|
|
34
|
+
if (currentResults !== newResults) {
|
|
35
|
+
const newParams = `${currentValue},${entities.join(',')}`;
|
|
36
|
+
if (newParams !== currentParams) {
|
|
37
|
+
setAllResults(results);
|
|
38
|
+
setCurrentParams(newParams);
|
|
39
|
+
if (verifiedRanges.length) setVerifiedRanges([]);
|
|
40
|
+
} else {
|
|
41
|
+
setAllResults(allResults.concat(results));
|
|
42
|
+
}
|
|
43
|
+
setCurrentResults(newResults);
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
},
|
|
37
|
-
[
|
|
47
|
+
[
|
|
48
|
+
allResults,
|
|
49
|
+
currentParams,
|
|
50
|
+
currentResults,
|
|
51
|
+
currentValue,
|
|
52
|
+
entities,
|
|
53
|
+
loading,
|
|
54
|
+
results,
|
|
55
|
+
total,
|
|
56
|
+
verifiedRanges.length
|
|
57
|
+
]
|
|
38
58
|
);
|
|
39
59
|
|
|
40
60
|
const handleRenderedItems = async ({ startIndex }) => {
|
|
41
|
-
const rowsLength =
|
|
61
|
+
const rowsLength = allResults.length;
|
|
42
62
|
const loadIndex = Math.floor(rowsLength / 2) - SEARCH_RESULTS_OVER_SCAN_BUFFER;
|
|
43
63
|
if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {
|
|
44
|
-
setQueryParams({ value: currentValue, offset:
|
|
64
|
+
setQueryParams({ value: currentValue, offset: allResults.length });
|
|
45
65
|
setVerifiedRanges([...verifiedRanges, loadIndex]);
|
|
46
66
|
setCurrentIndex(startIndex + SEARCH_RESULTS_OVER_SCAN_BUFFER);
|
|
47
67
|
}
|
|
@@ -63,7 +83,7 @@ const SearchResults = ({
|
|
|
63
83
|
return `${day}.${month}.${year}`;
|
|
64
84
|
};
|
|
65
85
|
|
|
66
|
-
if (!
|
|
86
|
+
if (!allResults.length)
|
|
67
87
|
return (
|
|
68
88
|
<div className="list list--search">
|
|
69
89
|
<div className="header header--list">
|
|
@@ -76,13 +96,13 @@ const SearchResults = ({
|
|
|
76
96
|
<div className="modal__content modal__content--search">
|
|
77
97
|
<div className="header header--list">
|
|
78
98
|
<h2 className="header--list--results">
|
|
79
|
-
About <b>{
|
|
99
|
+
About <b>{total}</b> search keywords results
|
|
80
100
|
</h2>
|
|
81
101
|
</div>
|
|
82
102
|
<VirtualList
|
|
83
103
|
width="100%"
|
|
84
104
|
height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}
|
|
85
|
-
itemCount={
|
|
105
|
+
itemCount={allResults.length}
|
|
86
106
|
itemSize={SEARCH_RESULTS_ITEM_SIZE}
|
|
87
107
|
overscanCount={SEARCH_RESULTS_OVER_SCAN_BUFFER}
|
|
88
108
|
scrollToIndex={currentIndex}
|
|
@@ -97,7 +117,7 @@ const SearchResults = ({
|
|
|
97
117
|
published,
|
|
98
118
|
created,
|
|
99
119
|
status
|
|
100
|
-
} =
|
|
120
|
+
} = allResults[index];
|
|
101
121
|
const updatedDate = updated ? getDateFormat(updated) : null;
|
|
102
122
|
const createdDate = created ? getDateFormat(created) : null;
|
|
103
123
|
const publishedDate = published ? getDateFormat(published) : null;
|
|
@@ -163,7 +183,8 @@ SearchResults.propTypes = {
|
|
|
163
183
|
setQueryParams: PropTypes.func.isRequired,
|
|
164
184
|
closeModal: PropTypes.func.isRequired,
|
|
165
185
|
history: PropTypes.object.isRequired,
|
|
166
|
-
currentValue: PropTypes.string.isRequired
|
|
186
|
+
currentValue: PropTypes.string.isRequired,
|
|
187
|
+
entities: PropTypes.array.isRequired
|
|
167
188
|
};
|
|
168
189
|
|
|
169
190
|
export default withRouter(SearchResults);
|
|
@@ -31,7 +31,17 @@ function useSearchResults({ queryKey, resultKeys, entities, fields }) {
|
|
|
31
31
|
const setQueryParams = params => {
|
|
32
32
|
params.value !== searchedValue ? clearList(params) : setParams(params);
|
|
33
33
|
};
|
|
34
|
-
|
|
34
|
+
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
loading,
|
|
38
|
+
results: allResults,
|
|
39
|
+
currentResults,
|
|
40
|
+
newResults: results,
|
|
41
|
+
total
|
|
42
|
+
},
|
|
43
|
+
setQueryParams
|
|
44
|
+
];
|
|
35
45
|
}
|
|
36
46
|
|
|
37
47
|
export default useSearchResults;
|