@blaze-cms/plugin-search-ui 0.125.0 → 0.126.0-admin-updates.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/components/SearchAdmin/SearchAdmin.js +57 -12
  3. package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
  4. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +113 -0
  5. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  6. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +12 -0
  7. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  8. package/lib/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
  9. package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  10. package/lib/components/useSearch/useSearch.js +11 -5
  11. package/lib/components/useSearch/useSearch.js.map +1 -1
  12. package/lib/components/useSearchResults/useSearchResults.js +1 -19
  13. package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
  14. package/lib-es/components/SearchAdmin/SearchAdmin.js +31 -3
  15. package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
  16. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +76 -0
  17. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  18. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  19. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  20. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
  21. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  22. package/lib-es/components/useSearch/useSearch.js +5 -2
  23. package/lib-es/components/useSearch/useSearch.js.map +1 -1
  24. package/lib-es/components/useSearchResults/useSearchResults.js +1 -11
  25. package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
  26. package/package.json +4 -4
  27. package/src/components/SearchAdmin/SearchAdmin.js +70 -40
  28. package/src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +88 -0
  29. package/src/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  30. package/src/components/SearchAdmin/SearchResults/SearchResults.js +42 -6
  31. package/src/components/useSearch/useSearch.js +8 -2
  32. package/src/components/useSearchResults/useSearchResults.js +1 -15
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
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.126.0-admin-updates.1](https://github.com/thebyte9/blaze/compare/v0.126.0-admin-updates.0...v0.126.0-admin-updates.1) (2022-12-22)
7
+
8
+ **Note:** Version bump only for package @blaze-cms/plugin-search-ui
9
+
10
+
11
+
12
+
13
+
14
+ # [0.126.0-admin-updates.0](https://github.com/thebyte9/blaze/compare/v0.125.2...v0.126.0-admin-updates.0) (2022-12-16)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * add updated searchAdmin test ([4db3178](https://github.com/thebyte9/blaze/commit/4db3178f8c95182d107a1d151a793a0987c8d7b8))
20
+ * update tests ([f86218f](https://github.com/thebyte9/blaze/commit/f86218f88a7348f68a07685a8f49ba459aac1b1b))
21
+ * update tests ([8fd2675](https://github.com/thebyte9/blaze/commit/8fd2675624126e5a23ecc0af3202d08c46667441))
22
+
23
+
24
+ ### Features
25
+
26
+ * add admin global search styles update first iteration ([7623917](https://github.com/thebyte9/blaze/commit/7623917e64b670f7d1fc12688af6ed39735da89e))
27
+ * add admin syle feedback ([56c01fd](https://github.com/thebyte9/blaze/commit/56c01fdf825a570143d4bc0c54fbcd970adc28ae))
28
+ * add search admin sidebar testsuite ([ca043fa](https://github.com/thebyte9/blaze/commit/ca043fa43835bd07cf50bae41af3d11e7be089b6))
29
+ * add search sidebar filter by entity ([e8b5423](https://github.com/thebyte9/blaze/commit/e8b542354ce47143635411da07bb640b91bf7fdf))
30
+ * add updated snapshots ([a0444bd](https://github.com/thebyte9/blaze/commit/a0444bd0d4e2f78753ac069067d39f3f6e741832))
31
+ * amend PR and fix scroll loop issue ([8583497](https://github.com/thebyte9/blaze/commit/85834974cafb45bb87f00f14a99b3fae3a818cfb))
32
+ * remove duplicated search results and add usedebounce to improve search performance ([9aad827](https://github.com/thebyte9/blaze/commit/9aad827e7e5aaf3be84d34343d79e6b1ecbead2c))
33
+
34
+
35
+
36
+
37
+
6
38
  # [0.125.0](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.18...v0.125.0) (2022-11-30)
7
39
 
8
40
  **Note:** Version bump only for package @blaze-cms/plugin-search-ui
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.array.iterator.js");
4
- require("core-js/modules/es.object.to-string.js");
5
4
  require("core-js/modules/es.string.iterator.js");
6
5
  require("core-js/modules/es.weak-map.js");
7
6
  require("core-js/modules/web.dom-collections.iterator.js");
@@ -13,17 +12,25 @@ Object.defineProperty(exports, "__esModule", {
13
12
  value: true
14
13
  });
15
14
  exports["default"] = void 0;
15
+ require("core-js/modules/es.array.map.js");
16
16
  require("core-js/modules/es.array.slice.js");
17
17
  require("core-js/modules/es.array.includes.js");
18
18
  require("core-js/modules/es.string.includes.js");
19
+ require("core-js/modules/es.array.some.js");
20
+ require("core-js/modules/es.object.to-string.js");
21
+ require("core-js/modules/es.array.filter.js");
22
+ require("core-js/modules/es.array.concat.js");
23
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
24
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
20
25
  var _react = _interopRequireWildcard(require("react"));
21
26
  var _classnames = _interopRequireDefault(require("classnames"));
27
+ var _customHooks = require("@blaze-react/utils/lib/customHooks");
22
28
  var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
23
29
  var _SearchBar = _interopRequireDefault(require("./SearchBar"));
24
30
  var _RecentSearches = _interopRequireDefault(require("./RecentSearches"));
25
31
  var _SearchResults = _interopRequireDefault(require("./SearchResults"));
26
32
  var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
33
+ var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
27
34
  var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
28
35
  var _constants = require("../../constants");
29
36
  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); }
@@ -33,21 +40,33 @@ var SearchAdmin = function SearchAdmin() {
33
40
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
34
41
  searchTerm = _useState2[0],
35
42
  setSearchTerm = _useState2[1];
43
+ var _useState3 = (0, _react.useState)(true),
44
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
45
+ openSearchSideBar = _useState4[0],
46
+ setOpenSearchSideBar = _useState4[1];
47
+ var _useState5 = (0, _react.useState)([]),
48
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
49
+ entityValues = _useState6[0],
50
+ setEntityValues = _useState6[1];
36
51
  var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
37
52
  _useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
38
53
  recentSearches = _useLocalStorage2[0],
39
54
  setRecentSearches = _useLocalStorage2[1];
40
- var _useState3 = (0, _react.useState)(false),
41
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
42
- displaySearchModalFrame = _useState4[0],
43
- setDisplaySearchModalFrame = _useState4[1];
44
- var _useState5 = (0, _react.useState)(true),
45
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
46
- enableResults = _useState6[0],
47
- setEnableResults = _useState6[1];
55
+ var _useState7 = (0, _react.useState)(false),
56
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
57
+ displaySearchModalFrame = _useState8[0],
58
+ setDisplaySearchModalFrame = _useState8[1];
59
+ var _useState9 = (0, _react.useState)(true),
60
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
61
+ enableResults = _useState10[0],
62
+ setEnableResults = _useState10[1];
48
63
  var searchInputRef = (0, _react.useRef)(null);
64
+ var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
49
65
  var _useSearchResults = (0, _useSearchResults3["default"])({
50
- queryKey: _constants.SEARCH_ADMIN
66
+ queryKey: _constants.SEARCH_ADMIN,
67
+ entities: debouncedEntityValues.map(function (e) {
68
+ return e.id;
69
+ })
51
70
  }),
52
71
  _useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
53
72
  _useSearchResults2$ = _useSearchResults2[0],
@@ -102,17 +121,43 @@ var SearchAdmin = function SearchAdmin() {
102
121
  var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
103
122
  'modal--show': displaySearchModalFrame
104
123
  });
124
+ var searchModalSideBarClassName = (0, _classnames["default"])('modal__search__sidebar', {
125
+ 'modal__search__sidebar--close': !openSearchSideBar
126
+ });
105
127
  var isEmptySearchTermAndData = !searchTerm && !results.length;
106
128
  var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
107
129
  var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
108
130
  var showResults = enableResults && results.length;
131
+ var handleSetEntityValues = function handleSetEntityValues(newEntity) {
132
+ var entityExists = entityValues.some(function (entity) {
133
+ return entity.id === newEntity.id;
134
+ });
135
+ if (entityExists) {
136
+ setEntityValues(entityValues.filter(function (entity) {
137
+ return entity.id !== newEntity.id;
138
+ }));
139
+ } else {
140
+ setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
141
+ }
142
+ };
109
143
  return /*#__PURE__*/_react["default"].createElement("div", {
110
144
  className: "search search--header"
111
145
  }, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
112
146
  toggleSearchModal: toggleSearchModal
113
147
  }), /*#__PURE__*/_react["default"].createElement("div", {
114
148
  className: searchModalResultsClassName
115
- }, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
149
+ }, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement("div", {
150
+ className: "modal__search"
151
+ }, /*#__PURE__*/_react["default"].createElement(_SearchAdminSideBar["default"], {
152
+ searchModalSideBarClassName: searchModalSideBarClassName,
153
+ openSearchSideBar: openSearchSideBar,
154
+ setOpenSearchSideBar: setOpenSearchSideBar,
155
+ handleSetEntityValues: handleSetEntityValues,
156
+ entityValues: entityValues,
157
+ setEntityValues: setEntityValues
158
+ }), /*#__PURE__*/_react["default"].createElement("div", {
159
+ className: "modal__search__content"
160
+ }, /*#__PURE__*/_react["default"].createElement("div", {
116
161
  className: "modal__header modal__header--search"
117
162
  }, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
118
163
  toggleSearchModal: toggleSearchModal,
@@ -141,7 +186,7 @@ var SearchAdmin = function SearchAdmin() {
141
186
  total: total,
142
187
  setQueryParams: setQueryParams,
143
188
  closeModal: toggleSearchModal
144
- }))));
189
+ })))));
145
190
  };
146
191
  var _default = SearchAdmin;
147
192
  exports["default"] = _default;
@@ -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,113 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.iterator.js");
4
+ require("core-js/modules/es.string.iterator.js");
5
+ require("core-js/modules/es.weak-map.js");
6
+ require("core-js/modules/web.dom-collections.iterator.js");
7
+ require("core-js/modules/es.object.define-property.js");
8
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
9
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
10
+ var _typeof = require("@babel/runtime/helpers/typeof");
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports["default"] = void 0;
15
+ require("core-js/modules/es.array.filter.js");
16
+ require("core-js/modules/es.object.to-string.js");
17
+ require("core-js/modules/es.object.keys.js");
18
+ require("core-js/modules/es.array.includes.js");
19
+ require("core-js/modules/es.string.includes.js");
20
+ require("core-js/modules/es.array.slice.js");
21
+ require("core-js/modules/es.array.map.js");
22
+ require("core-js/modules/es.array.some.js");
23
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
24
+ var _react = _interopRequireWildcard(require("react"));
25
+ var _client = require("@apollo/client");
26
+ var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
27
+ var _checkboxes = require("@blaze-react/checkboxes");
28
+ 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); }
29
+ 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; }
30
+ var MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
31
+ var SearchAdminSideBar = function SearchAdminSideBar(_ref) {
32
+ var searchModalSideBarClassName = _ref.searchModalSideBarClassName,
33
+ openSearchSideBar = _ref.openSearchSideBar,
34
+ setOpenSearchSideBar = _ref.setOpenSearchSideBar,
35
+ handleSetEntityValues = _ref.handleSetEntityValues,
36
+ entityValues = _ref.entityValues,
37
+ setEntityValues = _ref.setEntityValues;
38
+ var _useState = (0, _react.useState)(false),
39
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
40
+ loadMore = _useState2[0],
41
+ setLoadMore = _useState2[1];
42
+ var _useQuery = (0, _client.useQuery)((0, _adminUiUtils.getQuery)('GET_USER_EDITABLE_ENTITIES'), {
43
+ variables: {
44
+ canDoActions: MENU_PERMISSIONS
45
+ }
46
+ }),
47
+ _useQuery$data = _useQuery.data;
48
+ _useQuery$data = _useQuery$data === void 0 ? {} : _useQuery$data;
49
+ var _useQuery$data$getEnt = _useQuery$data.getEntitySchemas,
50
+ getEntitySchemas = _useQuery$data$getEnt === void 0 ? [] : _useQuery$data$getEnt,
51
+ loading = _useQuery.loading;
52
+ if (loading) return null;
53
+ var filteredEntitiesSchemas = getEntitySchemas.filter(function (entity) {
54
+ if (Object.keys(entity.extras).length) {
55
+ return entity.extras.searchIndexes.includes('admin');
56
+ }
57
+ return false;
58
+ });
59
+ var entitiesToShow = filteredEntitiesSchemas.slice(0, loadMore ? filteredEntitiesSchemas.length : 5);
60
+ return /*#__PURE__*/_react["default"].createElement("div", {
61
+ className: searchModalSideBarClassName
62
+ }, /*#__PURE__*/_react["default"].createElement("div", {
63
+ className: "modal__search__sidebar__button",
64
+ role: "button",
65
+ onClick: function onClick() {
66
+ return setOpenSearchSideBar(!openSearchSideBar);
67
+ }
68
+ }, /*#__PURE__*/_react["default"].createElement("i", {
69
+ className: "material-icons"
70
+ }, openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right')), /*#__PURE__*/_react["default"].createElement("div", {
71
+ className: "modal__search__sidebar__container"
72
+ }, /*#__PURE__*/_react["default"].createElement("div", {
73
+ className: "modal__search__sidebar__wrapper"
74
+ }, /*#__PURE__*/_react["default"].createElement("div", {
75
+ className: "modal__search__sidebar__filters"
76
+ }, /*#__PURE__*/_react["default"].createElement("i", {
77
+ className: "material-icons modal__search__sidebar__icon"
78
+ }, "tune"), /*#__PURE__*/_react["default"].createElement("span", null, "Filters")), /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: "modal__search__sidebar__clear",
80
+ role: "button",
81
+ onClick: function onClick() {
82
+ return setEntityValues([]);
83
+ }
84
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "Clear all"), /*#__PURE__*/_react["default"].createElement("i", {
85
+ className: "material-icons modal__search__sidebar__icon--clear"
86
+ }, "replay"))), /*#__PURE__*/_react["default"].createElement("div", {
87
+ className: "modal__search__sidebar__entity-list"
88
+ }, /*#__PURE__*/_react["default"].createElement("h1", null, "Entity list"), entitiesToShow.map(function (entity) {
89
+ return /*#__PURE__*/_react["default"].createElement(_checkboxes.Checkbox, {
90
+ checked: entityValues.some(function (_entity) {
91
+ return _entity.id === entity.id;
92
+ }),
93
+ label: entity.displayName,
94
+ id: entity.id,
95
+ name: entity.id,
96
+ onChange: function onChange(_ref2) {
97
+ var checked = _ref2.value.checked;
98
+ return handleSetEntityValues(entity);
99
+ }
100
+ });
101
+ }), /*#__PURE__*/_react["default"].createElement("div", {
102
+ className: "modal__search__sidebar__more",
103
+ role: "button",
104
+ onClick: function onClick() {
105
+ return setLoadMore(!loadMore);
106
+ }
107
+ }, /*#__PURE__*/_react["default"].createElement("i", {
108
+ className: "material-icons"
109
+ }, !loadMore ? 'navigate_next' : 'expand_less'), /*#__PURE__*/_react["default"].createElement("span", null, loadMore ? 'Less' : 'More')))));
110
+ };
111
+ var _default = SearchAdminSideBar;
112
+ exports["default"] = _default;
113
+ //# 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,12 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
10
+ var _default = _SearchAdminSideBar["default"];
11
+ exports["default"] = _default;
12
+ //# 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;AAAsD,eAEvCA,8BAAkB;AAAA"}
@@ -103,7 +103,9 @@ var SearchResults = function SearchResults(_ref) {
103
103
  className: "modal__content modal__content--search"
104
104
  }, /*#__PURE__*/_react["default"].createElement("div", {
105
105
  className: "header header--list"
106
- }, /*#__PURE__*/_react["default"].createElement("h2", null, total, " results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
106
+ }, /*#__PURE__*/_react["default"].createElement("h2", {
107
+ className: "header--list--results"
108
+ }, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
107
109
  width: "100%",
108
110
  height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
109
111
  itemCount: results.length,
@@ -118,8 +120,14 @@ var SearchResults = function SearchResults(_ref) {
118
120
  id = _results$index.id,
119
121
  docType = _results$index.docType,
120
122
  updated = _results$index.updated,
121
- name = _results$index.name;
123
+ name = _results$index.name,
124
+ entityIdentifier = _results$index.entityIdentifier,
125
+ published = _results$index.published,
126
+ created = _results$index.created,
127
+ status = _results$index.status;
122
128
  var updatedDate = updated ? getDateFormat(updated) : null;
129
+ var createdDate = created ? getDateFormat(created) : null;
130
+ var publishedDate = published ? getDateFormat(published) : null;
123
131
  return /*#__PURE__*/_react["default"].createElement("div", {
124
132
  key: index,
125
133
  style: style,
@@ -129,8 +137,8 @@ var SearchResults = function SearchResults(_ref) {
129
137
  }, /*#__PURE__*/_react["default"].createElement("div", {
130
138
  className: "list__item-row list__item-row--result"
131
139
  }, /*#__PURE__*/_react["default"].createElement("span", {
132
- className: "badge badge--primary"
133
- }, docType, " ", updatedDate), /*#__PURE__*/_react["default"].createElement("a", {
140
+ className: "list__item-identifier"
141
+ }, entityIdentifier), /*#__PURE__*/_react["default"].createElement("a", {
134
142
  href: getNavigationRoute({
135
143
  id: id,
136
144
  docType: docType
@@ -141,8 +149,12 @@ var SearchResults = function SearchResults(_ref) {
141
149
  docType: docType
142
150
  });
143
151
  },
144
- className: "list__item-text list__item-text--result"
145
- }, name))));
152
+ className: "list__item-link"
153
+ }, name), /*#__PURE__*/_react["default"].createElement("div", {
154
+ className: "list__item-dates"
155
+ }, publishedDate && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Published: "), publishedDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Created: "), createdDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Updated: "), updatedDate)), /*#__PURE__*/_react["default"].createElement("div", {
156
+ className: "list__item-status"
157
+ }, status && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Status: "), status)))));
146
158
  }
147
159
  })));
148
160
  };
@@ -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 { id, docType, updated, name } = results[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <div className=\"list__item list__item--result\">\n <div className=\"list__item-row list__item-row--result\">\n <span className=\"badge badge--primary\">\n {docType} {updatedDate}\n </span>\n <a\n href={getNavigationRoute({\n id,\n docType\n })}\n onClick={() =>\n navigate({\n id,\n docType\n })\n }\n className=\"list__item-text list__item-text--result\">\n {name}\n </a>\n </div>\n </div>\n </div>\n );\n }}\n />\n </div>\n </>\n );\n};\n\nSearchResults.propTypes = {\n loading: PropTypes.bool.isRequired,\n results: PropTypes.array.isRequired,\n total: PropTypes.number.isRequired,\n setQueryParams: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n currentValue: PropTypes.string.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":"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"}
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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"}
@@ -43,10 +43,14 @@ function useSearch(_ref) {
43
43
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
44
44
  searchedValue = _useState4[0],
45
45
  setSearchedValue = _useState4[1];
46
- var _useState5 = (0, _react.useState)(null),
46
+ var _useState5 = (0, _react.useState)([]),
47
47
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
48
- previousOffset = _useState6[0],
49
- setPreviousOffset = _useState6[1];
48
+ en = _useState6[0],
49
+ setEn = _useState6[1];
50
+ var _useState7 = (0, _react.useState)(null),
51
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
52
+ previousOffset = _useState8[0],
53
+ setPreviousOffset = _useState8[1];
50
54
  var buildSearchQuery = _query["default"][queryKey];
51
55
  var _useLazyQuery = (0, _client.useLazyQuery)(buildSearchQuery({
52
56
  resultKeys: resultKeys
@@ -80,6 +84,7 @@ function useSearch(_ref) {
80
84
  value = queryParams.value;
81
85
  var isNewValueSet = value && value !== searchedValue;
82
86
  var isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
87
+ var notSameLength = en.length !== entities.length;
83
88
  var parsedEntities = entities.length ? entities.map(function (entity) {
84
89
  return {
85
90
  match: {
@@ -87,7 +92,7 @@ function useSearch(_ref) {
87
92
  }
88
93
  };
89
94
  }) : [];
90
- if (isNewValueSet || isNewOffsetSet) {
95
+ if (isNewValueSet || isNewOffsetSet || notSameLength) {
91
96
  getSearchResults({
92
97
  variables: {
93
98
  limit: limit,
@@ -114,8 +119,9 @@ function useSearch(_ref) {
114
119
  });
115
120
  setSearchedValue(value);
116
121
  setPreviousOffset(offset);
122
+ setEn(entities);
117
123
  }
118
- }, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields]);
124
+ }, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields, entities.length, en.length]);
119
125
  return [{
120
126
  searchedValue: queryParams.value,
121
127
  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","parsedEntities","length","map","entity","match","docType","variables","rawQuery","query","bool","must","query_string","type","default_operator","should"],"sources":["../../../src/components/useSearch/useSearch.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useLazyQuery } from '@apollo/client';\nimport searchQueries from '../../application/query';\n\nfunction useSearch({ queryKey, resultKeys, entities = [], fields }) {\n const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });\n const [searchedValue, setSearchedValue] = useState(null);\n const [previousOffset, setPreviousOffset] = useState(null);\n const buildSearchQuery = searchQueries[queryKey];\n const [\n getSearchResults,\n {\n loading,\n data: { search: { results, jsonResults, total } } = {\n search: { results: [], total: 0 }\n }\n }\n ] = useLazyQuery(buildSearchQuery({ resultKeys }), { ssr: false });\n // todo: remove ssr: false once this bug is resolved https://github.com/apollographql/apollo-client/issues/9108\n // without ssr: false clients can hang in ssr.\n\n const handleQueryParams = newQueryParams => {\n setParams({ ...queryParams, ...newQueryParams });\n };\n\n useEffect(\n () => {\n const { limit, offset, value } = queryParams;\n const isNewValueSet = value && value !== searchedValue;\n const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (isNewValueSet || isNewOffsetSet) {\n getSearchResults({\n variables: {\n limit,\n offset,\n rawQuery: {\n query: {\n bool: {\n must: [\n {\n query_string: {\n query: value,\n fields,\n type: 'most_fields',\n default_operator: 'AND'\n }\n },\n {\n bool: {\n should: parsedEntities\n }\n }\n ]\n }\n }\n }\n }\n });\n setSearchedValue(value);\n setPreviousOffset(offset);\n }\n },\n [\n queryParams,\n queryParams.limit,\n queryParams.value,\n queryParams.offset,\n searchedValue,\n previousOffset,\n getSearchResults,\n entities,\n fields\n ]\n );\n\n return [\n { searchedValue: queryParams.value, loading, data: { results: results || jsonResults, total } },\n handleQueryParams\n ];\n}\n\nexport default useSearch;\n"],"mappings":"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"}
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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"}
@@ -15,11 +15,8 @@ Object.defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports["default"] = void 0;
18
- require("core-js/modules/es.array.concat.js");
19
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
21
19
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
22
- var _react = require("react");
23
20
  var _useSearch3 = _interopRequireDefault(require("../useSearch"));
24
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -42,22 +39,7 @@ function useSearchResults(_ref) {
42
39
  results = _useSearch2$$data.results,
43
40
  total = _useSearch2$$data.total,
44
41
  setParams = _useSearch2[1];
45
- var _useState = (0, _react.useState)([]),
46
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
47
- currentResults = _useState2[0],
48
- setCurrentResults = _useState2[1];
49
- var _useState3 = (0, _react.useState)([]),
50
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
51
- allResults = _useState4[0],
52
- setAllResults = _useState4[1];
53
- (0, _react.useEffect)(function () {
54
- if (currentResults.length !== results.length) {
55
- setAllResults([].concat((0, _toConsumableArray2["default"])(allResults), (0, _toConsumableArray2["default"])(results)));
56
- setCurrentResults(results);
57
- }
58
- }, [allResults, currentResults, currentResults.length, results]);
59
42
  var clearList = function clearList(params) {
60
- setAllResults([]);
61
43
  setParams(_objectSpread(_objectSpread({}, params), {}, {
62
44
  offset: 0
63
45
  }));
@@ -67,7 +49,7 @@ function useSearchResults(_ref) {
67
49
  };
68
50
  return [{
69
51
  loading: loading,
70
- results: allResults,
52
+ results: results,
71
53
  total: total
72
54
  }, setQueryParams];
73
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSearchResults.js","names":["useSearchResults","queryKey","resultKeys","entities","fields","useSearch","searchedValue","loading","data","results","total","setParams","useState","currentResults","setCurrentResults","allResults","setAllResults","useEffect","length","clearList","params","offset","setQueryParams","value"],"sources":["../../../src/components/useSearchResults/useSearchResults.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport useSearch from '../useSearch';\n\nfunction useSearchResults({ queryKey, resultKeys, entities, fields }) {\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n const [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n\n useEffect(\n () => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n },\n [allResults, currentResults, currentResults.length, results]\n );\n\n const clearList = params => {\n setAllResults([]);\n setParams({ ...params, offset: 0 });\n };\n\n const setQueryParams = params => {\n params.value !== searchedValue ? clearList(params) : setParams(params);\n };\n\n return [{ loading, results: allResults, total }, setQueryParams];\n}\n\nexport default useSearchResults;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAAqC;AAAA;AAErC,SAASA,gBAAgB,OAA6C;EAAA,IAA1CC,QAAQ,QAARA,QAAQ;IAAEC,UAAU,QAAVA,UAAU;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,MAAM,QAANA,MAAM;EAChE,iBAOI,IAAAC,sBAAS,EAAC;MAAEJ,QAAQ,EAARA,QAAQ;MAAEC,UAAU,EAAVA,UAAU;MAAEC,QAAQ,EAARA,QAAQ;MAAEC,MAAM,EAANA;IAAO,CAAC,CAAC;IAAA;IAAA;IALrDE,aAAa,gBAAbA,aAAa;IACbC,OAAO,gBAAPA,OAAO;IAAA,iCACPC,IAAI;IAAIC,OAAO,qBAAPA,OAAO;IAAEC,KAAK,qBAALA,KAAK;IAExBC,SAAS;EAEX,gBAA4C,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAjDC,cAAc;IAAEC,iBAAiB;EACxC,iBAAoC,IAAAF,eAAQ,EAAC,EAAE,CAAC;IAAA;IAAzCG,UAAU;IAAEC,aAAa;EAEhC,IAAAC,gBAAS,EACP,YAAM;IACJ,IAAIJ,cAAc,CAACK,MAAM,KAAKT,OAAO,CAACS,MAAM,EAAE;MAC5CF,aAAa,+CAAKD,UAAU,uCAAKN,OAAO,GAAE;MAC1CK,iBAAiB,CAACL,OAAO,CAAC;IAC5B;EACF,CAAC,EACD,CAACM,UAAU,EAAEF,cAAc,EAAEA,cAAc,CAACK,MAAM,EAAET,OAAO,CAAC,CAC7D;EAED,IAAMU,SAAS,GAAG,SAAZA,SAAS,CAAGC,MAAM,EAAI;IAC1BJ,aAAa,CAAC,EAAE,CAAC;IACjBL,SAAS,iCAAMS,MAAM;MAAEC,MAAM,EAAE;IAAC,GAAG;EACrC,CAAC;EAED,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAGF,MAAM,EAAI;IAC/BA,MAAM,CAACG,KAAK,KAAKjB,aAAa,GAAGa,SAAS,CAACC,MAAM,CAAC,GAAGT,SAAS,CAACS,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CAAC;IAAEb,OAAO,EAAPA,OAAO;IAAEE,OAAO,EAAEM,UAAU;IAAEL,KAAK,EAALA;EAAM,CAAC,EAAEY,cAAc,CAAC;AAClE;AAAC,eAEctB,gBAAgB;AAAA"}
1
+ {"version":3,"file":"useSearchResults.js","names":["useSearchResults","queryKey","resultKeys","entities","fields","useSearch","searchedValue","loading","data","results","total","setParams","clearList","params","offset","setQueryParams","value"],"sources":["../../../src/components/useSearchResults/useSearchResults.js"],"sourcesContent":["import useSearch from '../useSearch';\n\nfunction useSearchResults({ queryKey, resultKeys, entities, fields }) {\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields });\n\n const clearList = params => {\n setParams({ ...params, offset: 0 });\n };\n\n const setQueryParams = params => {\n params.value !== searchedValue ? clearList(params) : setParams(params);\n };\n\n return [{ loading, results, total }, setQueryParams];\n}\n\nexport default useSearchResults;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAqC;AAAA;AAErC,SAASA,gBAAgB,OAA6C;EAAA,IAA1CC,QAAQ,QAARA,QAAQ;IAAEC,UAAU,QAAVA,UAAU;IAAEC,QAAQ,QAARA,QAAQ;IAAEC,MAAM,QAANA,MAAM;EAChE,iBAOI,IAAAC,sBAAS,EAAC;MAAEJ,QAAQ,EAARA,QAAQ;MAAEC,UAAU,EAAVA,UAAU;MAAEC,QAAQ,EAARA,QAAQ;MAAEC,MAAM,EAANA;IAAO,CAAC,CAAC;IAAA;IAAA;IALrDE,aAAa,gBAAbA,aAAa;IACbC,OAAO,gBAAPA,OAAO;IAAA,iCACPC,IAAI;IAAIC,OAAO,qBAAPA,OAAO;IAAEC,KAAK,qBAALA,KAAK;IAExBC,SAAS;EAGX,IAAMC,SAAS,GAAG,SAAZA,SAAS,CAAGC,MAAM,EAAI;IAC1BF,SAAS,iCAAME,MAAM;MAAEC,MAAM,EAAE;IAAC,GAAG;EACrC,CAAC;EAED,IAAMC,cAAc,GAAG,SAAjBA,cAAc,CAAGF,MAAM,EAAI;IAC/BA,MAAM,CAACG,KAAK,KAAKV,aAAa,GAAGM,SAAS,CAACC,MAAM,CAAC,GAAGF,SAAS,CAACE,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CAAC;IAAEN,OAAO,EAAPA,OAAO;IAAEE,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAM,CAAC,EAAEK,cAAc,CAAC;AACtD;AAAC,eAEcf,gBAAgB;AAAA"}