@blaze-cms/plugin-search-ui 0.125.0-alpha.1 → 0.125.0-f-admin-updates.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 +15 -1
- package/lib/components/SearchAdmin/SearchAdmin.js +70 -13
- package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +143 -0
- package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +16 -0
- package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib/components/useSearch/useSearch.js +12 -5
- package/lib/components/useSearch/useSearch.js.map +1 -1
- package/lib/components/useSearchResults/useSearchResults.js +1 -25
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchAdmin.js +34 -3
- package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +79 -0
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
- package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
- package/lib-es/components/useSearch/useSearch.js +5 -2
- package/lib-es/components/useSearch/useSearch.js.map +1 -1
- package/lib-es/components/useSearchResults/useSearchResults.js +1 -11
- package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
- package/package.json +3 -3
- package/src/components/SearchAdmin/SearchAdmin.js +70 -40
- package/src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +88 -0
- package/src/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
- package/src/components/SearchAdmin/SearchResults/SearchResults.js +42 -6
- package/src/components/useSearch/useSearch.js +8 -2
- package/src/components/useSearchResults/useSearchResults.js +1 -15
package/CHANGELOG.md
CHANGED
|
@@ -3,12 +3,26 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [0.125.0-
|
|
6
|
+
# [0.125.0-f-admin-updates.0](https://github.com/thebyte9/blaze/compare/v0.124.1...v0.125.0-f-admin-updates.0) (2022-10-06)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Bug Fixes
|
|
10
10
|
|
|
11
|
+
* add updated searchAdmin test ([4db3178](https://github.com/thebyte9/blaze/commit/4db3178f8c95182d107a1d151a793a0987c8d7b8))
|
|
11
12
|
* improve autocomplete search results ([#3596](https://github.com/thebyte9/blaze/issues/3596)) ([d667764](https://github.com/thebyte9/blaze/commit/d6677641019abca34bae640aa4c857696c11ae4e))
|
|
13
|
+
* update tests ([f86218f](https://github.com/thebyte9/blaze/commit/f86218f88a7348f68a07685a8f49ba459aac1b1b))
|
|
14
|
+
* update tests ([8fd2675](https://github.com/thebyte9/blaze/commit/8fd2675624126e5a23ecc0af3202d08c46667441))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* add admin global search styles update first iteration ([7623917](https://github.com/thebyte9/blaze/commit/7623917e64b670f7d1fc12688af6ed39735da89e))
|
|
20
|
+
* add admin syle feedback ([56c01fd](https://github.com/thebyte9/blaze/commit/56c01fdf825a570143d4bc0c54fbcd970adc28ae))
|
|
21
|
+
* add search admin sidebar testsuite ([ca043fa](https://github.com/thebyte9/blaze/commit/ca043fa43835bd07cf50bae41af3d11e7be089b6))
|
|
22
|
+
* add search sidebar filter by entity ([e8b5423](https://github.com/thebyte9/blaze/commit/e8b542354ce47143635411da07bb640b91bf7fdf))
|
|
23
|
+
* add updated snapshots ([a0444bd](https://github.com/thebyte9/blaze/commit/a0444bd0d4e2f78753ac069067d39f3f6e741832))
|
|
24
|
+
* amend PR and fix scroll loop issue ([8583497](https://github.com/thebyte9/blaze/commit/85834974cafb45bb87f00f14a99b3fae3a818cfb))
|
|
25
|
+
* remove duplicated search results and add usedebounce to improve search performance ([9aad827](https://github.com/thebyte9/blaze/commit/9aad827e7e5aaf3be84d34343d79e6b1ecbead2c))
|
|
12
26
|
|
|
13
27
|
|
|
14
28
|
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.array.iterator.js");
|
|
4
4
|
|
|
5
|
-
require("core-js/modules/es.object.to-string.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.string.iterator.js");
|
|
8
6
|
|
|
9
7
|
require("core-js/modules/es.weak-map.js");
|
|
@@ -23,18 +21,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
23
21
|
});
|
|
24
22
|
exports["default"] = void 0;
|
|
25
23
|
|
|
24
|
+
require("core-js/modules/es.array.map.js");
|
|
25
|
+
|
|
26
26
|
require("core-js/modules/es.array.slice.js");
|
|
27
27
|
|
|
28
28
|
require("core-js/modules/es.array.includes.js");
|
|
29
29
|
|
|
30
30
|
require("core-js/modules/es.string.includes.js");
|
|
31
31
|
|
|
32
|
+
require("core-js/modules/es.array.some.js");
|
|
33
|
+
|
|
34
|
+
require("core-js/modules/es.object.to-string.js");
|
|
35
|
+
|
|
36
|
+
require("core-js/modules/es.array.filter.js");
|
|
37
|
+
|
|
38
|
+
require("core-js/modules/es.array.concat.js");
|
|
39
|
+
|
|
40
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
41
|
+
|
|
32
42
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
33
43
|
|
|
34
44
|
var _react = _interopRequireWildcard(require("react"));
|
|
35
45
|
|
|
36
46
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
37
47
|
|
|
48
|
+
var _customHooks = require("@blaze-react/utils/lib/customHooks");
|
|
49
|
+
|
|
38
50
|
var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
|
|
39
51
|
|
|
40
52
|
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
@@ -45,6 +57,8 @@ var _SearchResults = _interopRequireDefault(require("./SearchResults"));
|
|
|
45
57
|
|
|
46
58
|
var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
|
|
47
59
|
|
|
60
|
+
var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
|
|
61
|
+
|
|
48
62
|
var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
|
|
49
63
|
|
|
50
64
|
var _constants = require("../../constants");
|
|
@@ -59,25 +73,39 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
59
73
|
searchTerm = _useState2[0],
|
|
60
74
|
setSearchTerm = _useState2[1];
|
|
61
75
|
|
|
76
|
+
var _useState3 = (0, _react.useState)(true),
|
|
77
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
78
|
+
openSearchSideBar = _useState4[0],
|
|
79
|
+
setOpenSearchSideBar = _useState4[1];
|
|
80
|
+
|
|
81
|
+
var _useState5 = (0, _react.useState)([]),
|
|
82
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
83
|
+
entityValues = _useState6[0],
|
|
84
|
+
setEntityValues = _useState6[1];
|
|
85
|
+
|
|
62
86
|
var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
|
|
63
87
|
_useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
|
|
64
88
|
recentSearches = _useLocalStorage2[0],
|
|
65
89
|
setRecentSearches = _useLocalStorage2[1];
|
|
66
90
|
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
displaySearchModalFrame =
|
|
70
|
-
setDisplaySearchModalFrame =
|
|
91
|
+
var _useState7 = (0, _react.useState)(false),
|
|
92
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
93
|
+
displaySearchModalFrame = _useState8[0],
|
|
94
|
+
setDisplaySearchModalFrame = _useState8[1];
|
|
71
95
|
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
enableResults =
|
|
75
|
-
setEnableResults =
|
|
96
|
+
var _useState9 = (0, _react.useState)(true),
|
|
97
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
98
|
+
enableResults = _useState10[0],
|
|
99
|
+
setEnableResults = _useState10[1];
|
|
76
100
|
|
|
77
101
|
var searchInputRef = (0, _react.useRef)(null);
|
|
102
|
+
var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
|
|
78
103
|
|
|
79
104
|
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
80
|
-
queryKey: _constants.SEARCH_ADMIN
|
|
105
|
+
queryKey: _constants.SEARCH_ADMIN,
|
|
106
|
+
entities: debouncedEntityValues.map(function (e) {
|
|
107
|
+
return e.id;
|
|
108
|
+
})
|
|
81
109
|
}),
|
|
82
110
|
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
83
111
|
_useSearchResults2$ = _useSearchResults2[0],
|
|
@@ -144,17 +172,46 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
144
172
|
var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
|
|
145
173
|
'modal--show': displaySearchModalFrame
|
|
146
174
|
});
|
|
175
|
+
var searchModalSideBarClassName = (0, _classnames["default"])('modal__search__sidebar', {
|
|
176
|
+
'modal__search__sidebar--close': !openSearchSideBar
|
|
177
|
+
});
|
|
147
178
|
var isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
148
179
|
var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
149
180
|
var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
150
181
|
var showResults = enableResults && results.length;
|
|
182
|
+
|
|
183
|
+
var handleSetEntityValues = function handleSetEntityValues(newEntity) {
|
|
184
|
+
var entityExists = entityValues.some(function (entity) {
|
|
185
|
+
return entity.id === newEntity.id;
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
if (entityExists) {
|
|
189
|
+
setEntityValues(entityValues.filter(function (entity) {
|
|
190
|
+
return entity.id !== newEntity.id;
|
|
191
|
+
}));
|
|
192
|
+
} else {
|
|
193
|
+
setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
|
|
151
197
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
152
198
|
className: "search search--header"
|
|
153
199
|
}, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
|
|
154
200
|
toggleSearchModal: toggleSearchModal
|
|
155
201
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
156
202
|
className: searchModalResultsClassName
|
|
157
|
-
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(
|
|
203
|
+
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement("div", {
|
|
204
|
+
className: "modal__search"
|
|
205
|
+
}, /*#__PURE__*/_react["default"].createElement(_SearchAdminSideBar["default"], {
|
|
206
|
+
searchModalSideBarClassName: searchModalSideBarClassName,
|
|
207
|
+
openSearchSideBar: openSearchSideBar,
|
|
208
|
+
setOpenSearchSideBar: setOpenSearchSideBar,
|
|
209
|
+
handleSetEntityValues: handleSetEntityValues,
|
|
210
|
+
entityValues: entityValues,
|
|
211
|
+
setEntityValues: setEntityValues
|
|
212
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
213
|
+
className: "modal__search__content"
|
|
214
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
158
215
|
className: "modal__header modal__header--search"
|
|
159
216
|
}, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
|
|
160
217
|
toggleSearchModal: toggleSearchModal,
|
|
@@ -183,7 +240,7 @@ var SearchAdmin = function SearchAdmin() {
|
|
|
183
240
|
total: total,
|
|
184
241
|
setQueryParams: setQueryParams,
|
|
185
242
|
closeModal: toggleSearchModal
|
|
186
|
-
}))));
|
|
243
|
+
})))));
|
|
187
244
|
};
|
|
188
245
|
|
|
189
246
|
var _default = SearchAdmin;
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.string.iterator.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.weak-map.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.object.define-property.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
14
|
+
|
|
15
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
16
|
+
|
|
17
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
18
|
+
|
|
19
|
+
Object.defineProperty(exports, "__esModule", {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
exports["default"] = void 0;
|
|
23
|
+
|
|
24
|
+
require("core-js/modules/es.array.filter.js");
|
|
25
|
+
|
|
26
|
+
require("core-js/modules/es.object.to-string.js");
|
|
27
|
+
|
|
28
|
+
require("core-js/modules/es.object.keys.js");
|
|
29
|
+
|
|
30
|
+
require("core-js/modules/es.array.includes.js");
|
|
31
|
+
|
|
32
|
+
require("core-js/modules/es.string.includes.js");
|
|
33
|
+
|
|
34
|
+
require("core-js/modules/es.array.slice.js");
|
|
35
|
+
|
|
36
|
+
require("core-js/modules/es.array.map.js");
|
|
37
|
+
|
|
38
|
+
require("core-js/modules/es.array.some.js");
|
|
39
|
+
|
|
40
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
41
|
+
|
|
42
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
43
|
+
|
|
44
|
+
var _client = require("@apollo/client");
|
|
45
|
+
|
|
46
|
+
var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
|
|
47
|
+
|
|
48
|
+
var _checkboxes = require("@blaze-react/checkboxes");
|
|
49
|
+
|
|
50
|
+
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); }
|
|
51
|
+
|
|
52
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
53
|
+
|
|
54
|
+
var MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
|
|
55
|
+
|
|
56
|
+
var SearchAdminSideBar = function SearchAdminSideBar(_ref) {
|
|
57
|
+
var searchModalSideBarClassName = _ref.searchModalSideBarClassName,
|
|
58
|
+
openSearchSideBar = _ref.openSearchSideBar,
|
|
59
|
+
setOpenSearchSideBar = _ref.setOpenSearchSideBar,
|
|
60
|
+
handleSetEntityValues = _ref.handleSetEntityValues,
|
|
61
|
+
entityValues = _ref.entityValues,
|
|
62
|
+
setEntityValues = _ref.setEntityValues;
|
|
63
|
+
|
|
64
|
+
var _useState = (0, _react.useState)(false),
|
|
65
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
66
|
+
loadMore = _useState2[0],
|
|
67
|
+
setLoadMore = _useState2[1];
|
|
68
|
+
|
|
69
|
+
var _useQuery = (0, _client.useQuery)((0, _adminUiUtils.getQuery)('GET_USER_EDITABLE_ENTITIES'), {
|
|
70
|
+
variables: {
|
|
71
|
+
canDoActions: MENU_PERMISSIONS
|
|
72
|
+
}
|
|
73
|
+
}),
|
|
74
|
+
_useQuery$data = _useQuery.data;
|
|
75
|
+
|
|
76
|
+
_useQuery$data = _useQuery$data === void 0 ? {} : _useQuery$data;
|
|
77
|
+
var _useQuery$data$getEnt = _useQuery$data.getEntitySchemas,
|
|
78
|
+
getEntitySchemas = _useQuery$data$getEnt === void 0 ? [] : _useQuery$data$getEnt,
|
|
79
|
+
loading = _useQuery.loading;
|
|
80
|
+
if (loading) return null;
|
|
81
|
+
var filteredEntitiesSchemas = getEntitySchemas.filter(function (entity) {
|
|
82
|
+
if (Object.keys(entity.extras).length) {
|
|
83
|
+
return entity.extras.searchIndexes.includes('admin');
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return false;
|
|
87
|
+
});
|
|
88
|
+
var entitiesToShow = filteredEntitiesSchemas.slice(0, loadMore ? filteredEntitiesSchemas.length : 5);
|
|
89
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
90
|
+
className: searchModalSideBarClassName
|
|
91
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
92
|
+
className: "modal__search__sidebar__button",
|
|
93
|
+
role: "button",
|
|
94
|
+
onClick: function onClick() {
|
|
95
|
+
return setOpenSearchSideBar(!openSearchSideBar);
|
|
96
|
+
}
|
|
97
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
98
|
+
className: "material-icons"
|
|
99
|
+
}, openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right')), /*#__PURE__*/_react["default"].createElement("div", {
|
|
100
|
+
className: "modal__search__sidebar__container"
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
102
|
+
className: "modal__search__sidebar__wrapper"
|
|
103
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
104
|
+
className: "modal__search__sidebar__filters"
|
|
105
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
106
|
+
className: "material-icons modal__search__sidebar__icon"
|
|
107
|
+
}, "tune"), /*#__PURE__*/_react["default"].createElement("span", null, "Filters")), /*#__PURE__*/_react["default"].createElement("div", {
|
|
108
|
+
className: "modal__search__sidebar__clear",
|
|
109
|
+
role: "button",
|
|
110
|
+
onClick: function onClick() {
|
|
111
|
+
return setEntityValues([]);
|
|
112
|
+
}
|
|
113
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "Clear all"), /*#__PURE__*/_react["default"].createElement("i", {
|
|
114
|
+
className: "material-icons modal__search__sidebar__icon--clear"
|
|
115
|
+
}, "replay"))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
116
|
+
className: "modal__search__sidebar__entity-list"
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement("h1", null, "Entity list"), entitiesToShow.map(function (entity) {
|
|
118
|
+
return /*#__PURE__*/_react["default"].createElement(_checkboxes.Checkbox, {
|
|
119
|
+
checked: entityValues.some(function (_entity) {
|
|
120
|
+
return _entity.id === entity.id;
|
|
121
|
+
}),
|
|
122
|
+
label: entity.displayName,
|
|
123
|
+
id: entity.id,
|
|
124
|
+
name: entity.id,
|
|
125
|
+
onChange: function onChange(_ref2) {
|
|
126
|
+
var checked = _ref2.value.checked;
|
|
127
|
+
return handleSetEntityValues(entity);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
131
|
+
className: "modal__search__sidebar__more",
|
|
132
|
+
role: "button",
|
|
133
|
+
onClick: function onClick() {
|
|
134
|
+
return setLoadMore(!loadMore);
|
|
135
|
+
}
|
|
136
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
137
|
+
className: "material-icons"
|
|
138
|
+
}, !loadMore ? 'navigate_next' : 'expand_less'), /*#__PURE__*/_react["default"].createElement("span", null, loadMore ? 'Less' : 'More')))));
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
var _default = SearchAdminSideBar;
|
|
142
|
+
exports["default"] = _default;
|
|
143
|
+
//# sourceMappingURL=SearchAdminSideBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchAdminSideBar.js","names":["MENU_PERMISSIONS","SearchAdminSideBar","searchModalSideBarClassName","openSearchSideBar","setOpenSearchSideBar","handleSetEntityValues","entityValues","setEntityValues","useState","loadMore","setLoadMore","useQuery","getQuery","variables","canDoActions","data","getEntitySchemas","loading","filteredEntitiesSchemas","filter","entity","Object","keys","extras","length","searchIndexes","includes","entitiesToShow","slice","map","some","_entity","id","displayName","checked","value"],"sources":["../../../../src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { Checkbox } from '@blaze-react/checkboxes';\n\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\n\nconst SearchAdminSideBar = ({\n searchModalSideBarClassName,\n openSearchSideBar,\n setOpenSearchSideBar,\n handleSetEntityValues,\n entityValues,\n setEntityValues\n}) => {\n const [loadMore, setLoadMore] = useState(false);\n const { data: { getEntitySchemas = [] } = {}, loading } = useQuery(\n getQuery('GET_USER_EDITABLE_ENTITIES'),\n {\n variables: {\n canDoActions: MENU_PERMISSIONS\n }\n }\n );\n\n if (loading) return null;\n\n const filteredEntitiesSchemas = getEntitySchemas.filter(entity => {\n if (Object.keys(entity.extras).length) {\n return entity.extras.searchIndexes.includes('admin');\n }\n return false;\n });\n\n const entitiesToShow = filteredEntitiesSchemas.slice(\n 0,\n loadMore ? filteredEntitiesSchemas.length : 5\n );\n\n return (\n <div className={searchModalSideBarClassName}>\n <div\n className=\"modal__search__sidebar__button\"\n role=\"button\"\n onClick={() => setOpenSearchSideBar(!openSearchSideBar)}>\n <i className=\"material-icons\">\n {openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right'}\n </i>\n </div>\n <div className=\"modal__search__sidebar__container\">\n <div className=\"modal__search__sidebar__wrapper\">\n <div className=\"modal__search__sidebar__filters\">\n <i className=\"material-icons modal__search__sidebar__icon\">tune</i>\n <span>Filters</span>\n </div>\n <div\n className=\"modal__search__sidebar__clear\"\n role=\"button\"\n onClick={() => setEntityValues([])}>\n <span>Clear all</span>\n <i className=\"material-icons modal__search__sidebar__icon--clear\">replay</i>\n </div>\n </div>\n <div className=\"modal__search__sidebar__entity-list\">\n <h1>Entity list</h1>\n {entitiesToShow.map(entity => (\n <Checkbox\n checked={entityValues.some(_entity => _entity.id === entity.id)}\n label={entity.displayName}\n id={entity.id}\n name={entity.id}\n onChange={({ value: { checked } }) => handleSetEntityValues(entity)}\n />\n ))}\n <div\n className=\"modal__search__sidebar__more\"\n role=\"button\"\n onClick={() => setLoadMore(!loadMore)}>\n <i className=\"material-icons\">{!loadMore ? 'navigate_next' : 'expand_less'}</i>\n <span>{loadMore ? 'Less' : 'More'}</span>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchAdminSideBar;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
|
|
13
|
+
|
|
14
|
+
var _default = _SearchAdminSideBar["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["SearchAdminSideBar"],"sources":["../../../../src/components/SearchAdmin/SearchAdminSideBar/index.js"],"sourcesContent":["import SearchAdminSideBar from './SearchAdminSideBar';\n\nexport default SearchAdminSideBar;\n"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,8B"}
|
|
@@ -140,7 +140,9 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
140
140
|
className: "modal__content modal__content--search"
|
|
141
141
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
142
142
|
className: "header header--list"
|
|
143
|
-
}, /*#__PURE__*/_react["default"].createElement("h2",
|
|
143
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
144
|
+
className: "header--list--results"
|
|
145
|
+
}, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
|
|
144
146
|
width: "100%",
|
|
145
147
|
height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
|
|
146
148
|
itemCount: results.length,
|
|
@@ -155,8 +157,14 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
155
157
|
id = _results$index.id,
|
|
156
158
|
docType = _results$index.docType,
|
|
157
159
|
updated = _results$index.updated,
|
|
158
|
-
name = _results$index.name
|
|
160
|
+
name = _results$index.name,
|
|
161
|
+
entityIdentifier = _results$index.entityIdentifier,
|
|
162
|
+
published = _results$index.published,
|
|
163
|
+
created = _results$index.created,
|
|
164
|
+
status = _results$index.status;
|
|
159
165
|
var updatedDate = updated ? getDateFormat(updated) : null;
|
|
166
|
+
var createdDate = created ? getDateFormat(created) : null;
|
|
167
|
+
var publishedDate = published ? getDateFormat(published) : null;
|
|
160
168
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
161
169
|
key: index,
|
|
162
170
|
style: style,
|
|
@@ -166,8 +174,8 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
166
174
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
167
175
|
className: "list__item-row list__item-row--result"
|
|
168
176
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
169
|
-
className: "
|
|
170
|
-
},
|
|
177
|
+
className: "list__item-identifier"
|
|
178
|
+
}, entityIdentifier), /*#__PURE__*/_react["default"].createElement("a", {
|
|
171
179
|
href: getNavigationRoute({
|
|
172
180
|
id: id,
|
|
173
181
|
docType: docType
|
|
@@ -178,8 +186,12 @@ var SearchResults = function SearchResults(_ref) {
|
|
|
178
186
|
docType: docType
|
|
179
187
|
});
|
|
180
188
|
},
|
|
181
|
-
className: "list__item-
|
|
182
|
-
}, name)
|
|
189
|
+
className: "list__item-link"
|
|
190
|
+
}, name), /*#__PURE__*/_react["default"].createElement("div", {
|
|
191
|
+
className: "list__item-dates"
|
|
192
|
+
}, publishedDate && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Published: "), publishedDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Created: "), createdDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Updated: "), updatedDate)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
193
|
+
className: "list__item-status"
|
|
194
|
+
}, status && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Status: "), status)))));
|
|
183
195
|
}
|
|
184
196
|
})));
|
|
185
197
|
};
|
|
@@ -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","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 {
|
|
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","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","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 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={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 {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = results[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 </div>\n </>\n );\n};\n\nSearchResults.propTypes = {\n loading: PropTypes.bool.isRequired,\n results: PropTypes.array.isRequired,\n total: PropTypes.number.isRequired,\n setQueryParams: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n currentValue: PropTypes.string.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":"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"}
|
|
@@ -68,10 +68,15 @@ function useSearch(_ref) {
|
|
|
68
68
|
searchedValue = _useState4[0],
|
|
69
69
|
setSearchedValue = _useState4[1];
|
|
70
70
|
|
|
71
|
-
var _useState5 = (0, _react.useState)(
|
|
71
|
+
var _useState5 = (0, _react.useState)([]),
|
|
72
72
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
en = _useState6[0],
|
|
74
|
+
setEn = _useState6[1];
|
|
75
|
+
|
|
76
|
+
var _useState7 = (0, _react.useState)(null),
|
|
77
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
78
|
+
previousOffset = _useState8[0],
|
|
79
|
+
setPreviousOffset = _useState8[1];
|
|
75
80
|
|
|
76
81
|
var buildSearchQuery = _query["default"][queryKey];
|
|
77
82
|
|
|
@@ -108,6 +113,7 @@ function useSearch(_ref) {
|
|
|
108
113
|
value = queryParams.value;
|
|
109
114
|
var isNewValueSet = value && value !== searchedValue;
|
|
110
115
|
var isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
|
|
116
|
+
var notSameLength = en.length !== entities.length;
|
|
111
117
|
var parsedEntities = entities.length ? entities.map(function (entity) {
|
|
112
118
|
return {
|
|
113
119
|
match: {
|
|
@@ -116,7 +122,7 @@ function useSearch(_ref) {
|
|
|
116
122
|
};
|
|
117
123
|
}) : [];
|
|
118
124
|
|
|
119
|
-
if (isNewValueSet || isNewOffsetSet) {
|
|
125
|
+
if (isNewValueSet || isNewOffsetSet || notSameLength) {
|
|
120
126
|
getSearchResults({
|
|
121
127
|
variables: {
|
|
122
128
|
limit: limit,
|
|
@@ -143,8 +149,9 @@ function useSearch(_ref) {
|
|
|
143
149
|
});
|
|
144
150
|
setSearchedValue(value);
|
|
145
151
|
setPreviousOffset(offset);
|
|
152
|
+
setEn(entities);
|
|
146
153
|
}
|
|
147
|
-
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields]);
|
|
154
|
+
}, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields, entities.length, en.length]);
|
|
148
155
|
return [{
|
|
149
156
|
searchedValue: queryParams.value,
|
|
150
157
|
loading: loading,
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
1
|
+
{"version":3,"file":"useSearch.js","names":["useSearch","queryKey","resultKeys","entities","fields","useState","limit","offset","value","queryParams","setParams","searchedValue","setSearchedValue","en","setEn","previousOffset","setPreviousOffset","buildSearchQuery","searchQueries","useLazyQuery","ssr","getSearchResults","loading","data","search","results","total","jsonResults","handleQueryParams","newQueryParams","useEffect","isNewValueSet","isNewOffsetSet","notSameLength","length","parsedEntities","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 [en, setEn] = useState([]);\n const [previousOffset, setPreviousOffset] = useState(null);\n\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 notSameLength = en.length !== entities.length;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (isNewValueSet || isNewOffsetSet || notSameLength) {\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 setEn(entities);\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 entities.length,\n en.length\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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"}
|