@blaze-cms/plugin-search-ui 0.125.0-core-styles.0 → 0.125.0-f-admin-updates.3

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 (96) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/lib/application/query/index.js +0 -8
  3. package/lib/application/query/index.js.map +1 -1
  4. package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js +2 -11
  5. package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -1
  6. package/lib/components/SearchAdmin/RecentSearches/index.js +0 -4
  7. package/lib/components/SearchAdmin/RecentSearches/index.js.map +1 -1
  8. package/lib/components/SearchAdmin/SearchAdmin.js +70 -68
  9. package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
  10. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +113 -0
  11. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  12. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +12 -0
  13. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  14. package/lib/components/SearchAdmin/SearchBar/SearchBar.js +7 -15
  15. package/lib/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -1
  16. package/lib/components/SearchAdmin/SearchBar/index.js +0 -4
  17. package/lib/components/SearchAdmin/SearchBar/index.js.map +1 -1
  18. package/lib/components/SearchAdmin/SearchResults/SearchResults.js +37 -65
  19. package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  20. package/lib/components/SearchAdmin/SearchResults/index.js +0 -4
  21. package/lib/components/SearchAdmin/SearchResults/index.js.map +1 -1
  22. package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js +0 -6
  23. package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -1
  24. package/lib/components/SearchAdmin/TriggerModal/index.js +0 -4
  25. package/lib/components/SearchAdmin/TriggerModal/index.js.map +1 -1
  26. package/lib/components/SearchAdmin/index.js +0 -4
  27. package/lib/components/SearchAdmin/index.js.map +1 -1
  28. package/lib/components/SearchPublishedContent/SearchPublishedContent.js +36 -67
  29. package/lib/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -1
  30. package/lib/components/SearchPublishedContent/index.js +0 -4
  31. package/lib/components/SearchPublishedContent/index.js.map +1 -1
  32. package/lib/components/useLocalStorage/index.js +0 -4
  33. package/lib/components/useLocalStorage/index.js.map +1 -1
  34. package/lib/components/useLocalStorage/useLocalStorage.js +6 -14
  35. package/lib/components/useLocalStorage/useLocalStorage.js.map +1 -1
  36. package/lib/components/useSearch/index.js +0 -4
  37. package/lib/components/useSearch/index.js.map +1 -1
  38. package/lib/components/useSearch/useSearch.js +41 -65
  39. package/lib/components/useSearch/useSearch.js.map +1 -1
  40. package/lib/components/useSearchResults/index.js +0 -4
  41. package/lib/components/useSearchResults/index.js.map +1 -1
  42. package/lib/components/useSearchResults/useSearchResults.js +17 -63
  43. package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
  44. package/lib/constants.js +0 -1
  45. package/lib/constants.js.map +1 -1
  46. package/lib/hooks/index.js +0 -4
  47. package/lib/hooks/index.js.map +1 -1
  48. package/lib/hooks/useDebounceSearch.js +19 -33
  49. package/lib/hooks/useDebounceSearch.js.map +1 -1
  50. package/lib/index.js +0 -6
  51. package/lib/index.js.map +1 -1
  52. package/lib-es/application/query/index.js +0 -3
  53. package/lib-es/application/query/index.js.map +1 -1
  54. package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js +0 -2
  55. package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -1
  56. package/lib-es/components/SearchAdmin/RecentSearches/index.js.map +1 -1
  57. package/lib-es/components/SearchAdmin/SearchAdmin.js +31 -14
  58. package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
  59. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +76 -0
  60. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  61. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  62. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  63. package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js +0 -2
  64. package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -1
  65. package/lib-es/components/SearchAdmin/SearchBar/index.js.map +1 -1
  66. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +18 -15
  67. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  68. package/lib-es/components/SearchAdmin/SearchResults/index.js.map +1 -1
  69. package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js +0 -2
  70. package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -1
  71. package/lib-es/components/SearchAdmin/TriggerModal/index.js.map +1 -1
  72. package/lib-es/components/SearchAdmin/index.js.map +1 -1
  73. package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js +4 -10
  74. package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -1
  75. package/lib-es/components/SearchPublishedContent/index.js.map +1 -1
  76. package/lib-es/components/useLocalStorage/index.js.map +1 -1
  77. package/lib-es/components/useLocalStorage/useLocalStorage.js +0 -4
  78. package/lib-es/components/useLocalStorage/useLocalStorage.js.map +1 -1
  79. package/lib-es/components/useSearch/index.js.map +1 -1
  80. package/lib-es/components/useSearch/useSearch.js +7 -10
  81. package/lib-es/components/useSearch/useSearch.js.map +1 -1
  82. package/lib-es/components/useSearchResults/index.js.map +1 -1
  83. package/lib-es/components/useSearchResults/useSearchResults.js +1 -19
  84. package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
  85. package/lib-es/constants.js.map +1 -1
  86. package/lib-es/hooks/index.js.map +1 -1
  87. package/lib-es/hooks/useDebounceSearch.js +0 -2
  88. package/lib-es/hooks/useDebounceSearch.js.map +1 -1
  89. package/lib-es/index.js.map +1 -1
  90. package/package.json +3 -3
  91. package/src/components/SearchAdmin/SearchAdmin.js +70 -40
  92. package/src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +88 -0
  93. package/src/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  94. package/src/components/SearchAdmin/SearchResults/SearchResults.js +42 -6
  95. package/src/components/useSearch/useSearch.js +8 -2
  96. package/src/components/useSearchResults/useSearchResults.js +1 -15
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","names":["useState","useEffect","useLazyQuery","searchQueries","useSearch","queryKey","resultKeys","entities","fields","queryParams","setParams","limit","offset","value","searchedValue","setSearchedValue","previousOffset","setPreviousOffset","buildSearchQuery","getSearchResults","loading","data","search","results","jsonResults","total","ssr","handleQueryParams","newQueryParams","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":["useState","useEffect","useLazyQuery","searchQueries","useSearch","queryKey","resultKeys","entities","fields","queryParams","setParams","limit","offset","value","searchedValue","setSearchedValue","en","setEn","previousOffset","setPreviousOffset","buildSearchQuery","getSearchResults","loading","data","search","results","jsonResults","total","ssr","handleQueryParams","newQueryParams","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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useSearchResults"],"sources":["../../../src/components/useSearchResults/index.js"],"sourcesContent":["import useSearchResults from './useSearchResults';\n\nexport default useSearchResults;\n"],"mappings":"AAAA,OAAOA,gBAAP,MAA6B,oBAA7B;AAEA,eAAeA,gBAAf"}
1
+ {"version":3,"file":"index.js","names":["useSearchResults"],"sources":["../../../src/components/useSearchResults/index.js"],"sourcesContent":["import useSearchResults from './useSearchResults';\n\nexport default useSearchResults;\n"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,oBAAoB;AAEjD,eAAeA,gBAAgB"}
@@ -1,12 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
2
  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; }
4
-
5
3
  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) { _defineProperty(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; }
6
-
7
- import { useState, useEffect } from 'react';
8
4
  import useSearch from '../useSearch';
9
-
10
5
  function useSearchResults({
11
6
  queryKey,
12
7
  resultKeys,
@@ -26,32 +21,19 @@ function useSearchResults({
26
21
  entities,
27
22
  fields
28
23
  });
29
- const [currentResults, setCurrentResults] = useState([]);
30
- const [allResults, setAllResults] = useState([]);
31
- useEffect(() => {
32
- if (currentResults.length !== results.length) {
33
- setAllResults([...allResults, ...results]);
34
- setCurrentResults(results);
35
- }
36
- }, [allResults, currentResults, currentResults.length, results]);
37
-
38
24
  const clearList = params => {
39
- setAllResults([]);
40
25
  setParams(_objectSpread(_objectSpread({}, params), {}, {
41
26
  offset: 0
42
27
  }));
43
28
  };
44
-
45
29
  const setQueryParams = params => {
46
30
  params.value !== searchedValue ? clearList(params) : setParams(params);
47
31
  };
48
-
49
32
  return [{
50
33
  loading,
51
- results: allResults,
34
+ results,
52
35
  total
53
36
  }, setQueryParams];
54
37
  }
55
-
56
38
  export default useSearchResults;
57
39
  //# sourceMappingURL=useSearchResults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSearchResults.js","names":["useState","useEffect","useSearch","useSearchResults","queryKey","resultKeys","entities","fields","searchedValue","loading","data","results","total","setParams","currentResults","setCurrentResults","allResults","setAllResults","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,SAASA,QAAT,EAAmBC,SAAnB,QAAoC,OAApC;AACA,OAAOC,SAAP,MAAsB,cAAtB;;AAEA,SAASC,gBAAT,CAA0B;EAAEC,QAAF;EAAYC,UAAZ;EAAwBC,QAAxB;EAAkCC;AAAlC,CAA1B,EAAsE;EACpE,MAAM,CACJ;IACEC,aADF;IAEEC,OAFF;IAGEC,IAAI,EAAE;MAAEC,OAAF;MAAWC;IAAX;EAHR,CADI,EAMJC,SANI,IAOFX,SAAS,CAAC;IAAEE,QAAF;IAAYC,UAAZ;IAAwBC,QAAxB;IAAkCC;EAAlC,CAAD,CAPb;EAQA,MAAM,CAACO,cAAD,EAAiBC,iBAAjB,IAAsCf,QAAQ,CAAC,EAAD,CAApD;EACA,MAAM,CAACgB,UAAD,EAAaC,aAAb,IAA8BjB,QAAQ,CAAC,EAAD,CAA5C;EAEAC,SAAS,CACP,MAAM;IACJ,IAAIa,cAAc,CAACI,MAAf,KAA0BP,OAAO,CAACO,MAAtC,EAA8C;MAC5CD,aAAa,CAAC,CAAC,GAAGD,UAAJ,EAAgB,GAAGL,OAAnB,CAAD,CAAb;MACAI,iBAAiB,CAACJ,OAAD,CAAjB;IACD;EACF,CANM,EAOP,CAACK,UAAD,EAAaF,cAAb,EAA6BA,cAAc,CAACI,MAA5C,EAAoDP,OAApD,CAPO,CAAT;;EAUA,MAAMQ,SAAS,GAAGC,MAAM,IAAI;IAC1BH,aAAa,CAAC,EAAD,CAAb;IACAJ,SAAS,iCAAMO,MAAN;MAAcC,MAAM,EAAE;IAAtB,GAAT;EACD,CAHD;;EAKA,MAAMC,cAAc,GAAGF,MAAM,IAAI;IAC/BA,MAAM,CAACG,KAAP,KAAiBf,aAAjB,GAAiCW,SAAS,CAACC,MAAD,CAA1C,GAAqDP,SAAS,CAACO,MAAD,CAA9D;EACD,CAFD;;EAIA,OAAO,CAAC;IAAEX,OAAF;IAAWE,OAAO,EAAEK,UAApB;IAAgCJ;EAAhC,CAAD,EAA0CU,cAA1C,CAAP;AACD;;AAED,eAAenB,gBAAf"}
1
+ {"version":3,"file":"useSearchResults.js","names":["useSearch","useSearchResults","queryKey","resultKeys","entities","fields","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,OAAOA,SAAS,MAAM,cAAc;AAEpC,SAASC,gBAAgB,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAE;EACpE,MAAM,CACJ;IACEC,aAAa;IACbC,OAAO;IACPC,IAAI,EAAE;MAAEC,OAAO;MAAEC;IAAM;EACzB,CAAC,EACDC,SAAS,CACV,GAAGX,SAAS,CAAC;IAAEE,QAAQ;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAO,CAAC,CAAC;EAEzD,MAAMO,SAAS,GAAGC,MAAM,IAAI;IAC1BF,SAAS,iCAAME,MAAM;MAAEC,MAAM,EAAE;IAAC,GAAG;EACrC,CAAC;EAED,MAAMC,cAAc,GAAGF,MAAM,IAAI;IAC/BA,MAAM,CAACG,KAAK,KAAKV,aAAa,GAAGM,SAAS,CAACC,MAAM,CAAC,GAAGF,SAAS,CAACE,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CAAC;IAAEN,OAAO;IAAEE,OAAO;IAAEC;EAAM,CAAC,EAAEK,cAAc,CAAC;AACtD;AAEA,eAAed,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["SEARCH_ADMIN","SEARCH_PUBLISHED","SEARCH_RESULTS_OVER_SCAN_BUFFER","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","DEFAULT_RESULTS_KEYS","SEARCH_BUTTON","FILE"],"sources":["../src/constants.js"],"sourcesContent":["const SEARCH_ADMIN = 'SEARCH_ADMIN';\nconst SEARCH_PUBLISHED = 'SEARCH_PUBLISHED';\nconst SEARCH_RESULTS_OVER_SCAN_BUFFER = 0;\nconst SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST = 186;\nconst SEARCH_RESULTS_ITEM_SIZE = 105;\nconst DEFAULT_RESULTS_KEYS = 'name, url';\nconst SEARCH_BUTTON = 'search-button';\nconst FILE = 'file';\n\nexport {\n SEARCH_ADMIN,\n SEARCH_PUBLISHED,\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_ITEM_SIZE,\n DEFAULT_RESULTS_KEYS,\n SEARCH_BUTTON,\n FILE\n};\n"],"mappings":"AAAA,MAAMA,YAAY,GAAG,cAArB;AACA,MAAMC,gBAAgB,GAAG,kBAAzB;AACA,MAAMC,+BAA+B,GAAG,CAAxC;AACA,MAAMC,wCAAwC,GAAG,GAAjD;AACA,MAAMC,wBAAwB,GAAG,GAAjC;AACA,MAAMC,oBAAoB,GAAG,WAA7B;AACA,MAAMC,aAAa,GAAG,eAAtB;AACA,MAAMC,IAAI,GAAG,MAAb;AAEA,SACEP,YADF,EAEEC,gBAFF,EAGEC,+BAHF,EAIEC,wCAJF,EAKEC,wBALF,EAMEC,oBANF,EAOEC,aAPF,EAQEC,IARF"}
1
+ {"version":3,"file":"constants.js","names":["SEARCH_ADMIN","SEARCH_PUBLISHED","SEARCH_RESULTS_OVER_SCAN_BUFFER","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","DEFAULT_RESULTS_KEYS","SEARCH_BUTTON","FILE"],"sources":["../src/constants.js"],"sourcesContent":["const SEARCH_ADMIN = 'SEARCH_ADMIN';\nconst SEARCH_PUBLISHED = 'SEARCH_PUBLISHED';\nconst SEARCH_RESULTS_OVER_SCAN_BUFFER = 0;\nconst SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST = 186;\nconst SEARCH_RESULTS_ITEM_SIZE = 105;\nconst DEFAULT_RESULTS_KEYS = 'name, url';\nconst SEARCH_BUTTON = 'search-button';\nconst FILE = 'file';\n\nexport {\n SEARCH_ADMIN,\n SEARCH_PUBLISHED,\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_ITEM_SIZE,\n DEFAULT_RESULTS_KEYS,\n SEARCH_BUTTON,\n FILE\n};\n"],"mappings":"AAAA,MAAMA,YAAY,GAAG,cAAc;AACnC,MAAMC,gBAAgB,GAAG,kBAAkB;AAC3C,MAAMC,+BAA+B,GAAG,CAAC;AACzC,MAAMC,wCAAwC,GAAG,GAAG;AACpD,MAAMC,wBAAwB,GAAG,GAAG;AACpC,MAAMC,oBAAoB,GAAG,WAAW;AACxC,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,IAAI,GAAG,MAAM;AAEnB,SACEP,YAAY,EACZC,gBAAgB,EAChBC,+BAA+B,EAC/BC,wCAAwC,EACxCC,wBAAwB,EACxBC,oBAAoB,EACpBC,aAAa,EACbC,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useDebounceSearch"],"sources":["../../src/hooks/index.js"],"sourcesContent":["import useDebounceSearch from './useDebounceSearch';\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,OAAOA,iBAAP,MAA8B,qBAA9B;AAEA,eAAeA,iBAAf"}
1
+ {"version":3,"file":"index.js","names":["useDebounceSearch"],"sources":["../../src/hooks/index.js"],"sourcesContent":["import useDebounceSearch from './useDebounceSearch';\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,OAAOA,iBAAiB,MAAM,qBAAqB;AAEnD,eAAeA,iBAAiB"}
@@ -2,7 +2,6 @@ import { useEffect, useState } from 'react';
2
2
  import { useDebounce } from '@blaze-react/utils/lib/customHooks';
3
3
  import useSearchResults from '../components/useSearchResults';
4
4
  import { SEARCH_PUBLISHED } from '../constants';
5
-
6
5
  const useDebounceSearch = ({
7
6
  entities,
8
7
  resultKeys,
@@ -39,6 +38,5 @@ const useDebounceSearch = ({
39
38
  previousSearchTerm
40
39
  };
41
40
  };
42
-
43
41
  export default useDebounceSearch;
44
42
  //# sourceMappingURL=useDebounceSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounceSearch.js","names":["useEffect","useState","useDebounce","useSearchResults","SEARCH_PUBLISHED","useDebounceSearch","entities","resultKeys","fields","initialSearchTerm","searchTerm","setSearchTerm","previousSearchTerm","setPreviousSearchTerm","debouncedSearchTerm","loading","results","setQueryParams","queryKey","value"],"sources":["../../src/hooks/useDebounceSearch.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useSearchResults from '../components/useSearchResults';\nimport { SEARCH_PUBLISHED } from '../constants';\n\nconst useDebounceSearch = ({ entities, resultKeys, fields, initialSearchTerm }) => {\n const [searchTerm, setSearchTerm] = useState(initialSearchTerm ?? '');\n const [previousSearchTerm, setPreviousSearchTerm] = useState(null);\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const [{ loading, results }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_PUBLISHED,\n resultKeys,\n entities,\n fields\n });\n\n useEffect(\n () => {\n if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {\n setQueryParams({ value: debouncedSearchTerm });\n setPreviousSearchTerm(debouncedSearchTerm);\n }\n },\n [debouncedSearchTerm, previousSearchTerm, setQueryParams]\n );\n\n return {\n loading,\n results,\n searchTerm,\n setSearchTerm,\n setPreviousSearchTerm,\n debouncedSearchTerm,\n previousSearchTerm\n };\n};\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AACA,SAASC,WAAT,QAA4B,oCAA5B;AACA,OAAOC,gBAAP,MAA6B,gCAA7B;AACA,SAASC,gBAAT,QAAiC,cAAjC;;AAEA,MAAMC,iBAAiB,GAAG,CAAC;EAAEC,QAAF;EAAYC,UAAZ;EAAwBC,MAAxB;EAAgCC;AAAhC,CAAD,KAAyD;EACjF,MAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BV,QAAQ,CAACQ,iBAAD,aAACA,iBAAD,cAACA,iBAAD,GAAsB,EAAtB,CAA5C;EACA,MAAM,CAACG,kBAAD,EAAqBC,qBAArB,IAA8CZ,QAAQ,CAAC,IAAD,CAA5D;EACA,MAAMa,mBAAmB,GAAGZ,WAAW,CAACQ,UAAD,EAAa,GAAb,CAAvC;EAEA,MAAM,CAAC;IAAEK,OAAF;IAAWC;EAAX,CAAD,EAAuBC,cAAvB,IAAyCd,gBAAgB,CAAC;IAC9De,QAAQ,EAAEd,gBADoD;IAE9DG,UAF8D;IAG9DD,QAH8D;IAI9DE;EAJ8D,CAAD,CAA/D;EAOAR,SAAS,CACP,MAAM;IACJ,IAAIc,mBAAmB,IAAIA,mBAAmB,KAAKF,kBAAnD,EAAuE;MACrEK,cAAc,CAAC;QAAEE,KAAK,EAAEL;MAAT,CAAD,CAAd;MACAD,qBAAqB,CAACC,mBAAD,CAArB;IACD;EACF,CANM,EAOP,CAACA,mBAAD,EAAsBF,kBAAtB,EAA0CK,cAA1C,CAPO,CAAT;EAUA,OAAO;IACLF,OADK;IAELC,OAFK;IAGLN,UAHK;IAILC,aAJK;IAKLE,qBALK;IAMLC,mBANK;IAOLF;EAPK,CAAP;AASD,CA/BD;;AAiCA,eAAeP,iBAAf"}
1
+ {"version":3,"file":"useDebounceSearch.js","names":["useEffect","useState","useDebounce","useSearchResults","SEARCH_PUBLISHED","useDebounceSearch","entities","resultKeys","fields","initialSearchTerm","searchTerm","setSearchTerm","previousSearchTerm","setPreviousSearchTerm","debouncedSearchTerm","loading","results","setQueryParams","queryKey","value"],"sources":["../../src/hooks/useDebounceSearch.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useSearchResults from '../components/useSearchResults';\nimport { SEARCH_PUBLISHED } from '../constants';\n\nconst useDebounceSearch = ({ entities, resultKeys, fields, initialSearchTerm }) => {\n const [searchTerm, setSearchTerm] = useState(initialSearchTerm ?? '');\n const [previousSearchTerm, setPreviousSearchTerm] = useState(null);\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const [{ loading, results }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_PUBLISHED,\n resultKeys,\n entities,\n fields\n });\n\n useEffect(\n () => {\n if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {\n setQueryParams({ value: debouncedSearchTerm });\n setPreviousSearchTerm(debouncedSearchTerm);\n }\n },\n [debouncedSearchTerm, previousSearchTerm, setQueryParams]\n );\n\n return {\n loading,\n results,\n searchTerm,\n setSearchTerm,\n setPreviousSearchTerm,\n debouncedSearchTerm,\n previousSearchTerm\n };\n};\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,WAAW,QAAQ,oCAAoC;AAChE,OAAOC,gBAAgB,MAAM,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,cAAc;AAE/C,MAAMC,iBAAiB,GAAG,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,MAAM;EAAEC;AAAkB,CAAC,KAAK;EACjF,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGV,QAAQ,CAACQ,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI,EAAE,CAAC;EACrE,MAAM,CAACG,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGZ,QAAQ,CAAC,IAAI,CAAC;EAClE,MAAMa,mBAAmB,GAAGZ,WAAW,CAACQ,UAAU,EAAE,GAAG,CAAC;EAExD,MAAM,CAAC;IAAEK,OAAO;IAAEC;EAAQ,CAAC,EAAEC,cAAc,CAAC,GAAGd,gBAAgB,CAAC;IAC9De,QAAQ,EAAEd,gBAAgB;IAC1BG,UAAU;IACVD,QAAQ;IACRE;EACF,CAAC,CAAC;EAEFR,SAAS,CACP,MAAM;IACJ,IAAIc,mBAAmB,IAAIA,mBAAmB,KAAKF,kBAAkB,EAAE;MACrEK,cAAc,CAAC;QAAEE,KAAK,EAAEL;MAAoB,CAAC,CAAC;MAC9CD,qBAAqB,CAACC,mBAAmB,CAAC;IAC5C;EACF,CAAC,EACD,CAACA,mBAAmB,EAAEF,kBAAkB,EAAEK,cAAc,CAAC,CAC1D;EAED,OAAO;IACLF,OAAO;IACPC,OAAO;IACPN,UAAU;IACVC,aAAa;IACbE,qBAAqB;IACrBC,mBAAmB;IACnBF;EACF,CAAC;AACH,CAAC;AAED,eAAeP,iBAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["SearchAdmin","SearchPublishedContent","SearchBar","useDebounceSearch"],"sources":["../src/index.js"],"sourcesContent":["import SearchAdmin from './components/SearchAdmin';\nimport SearchPublishedContent from './components/SearchPublishedContent';\nimport SearchBar from './components/SearchAdmin/SearchBar';\nimport useDebounceSearch from './hooks/useDebounceSearch';\n\nexport { SearchAdmin, SearchPublishedContent, SearchBar, useDebounceSearch };\n"],"mappings":"AAAA,OAAOA,WAAP,MAAwB,0BAAxB;AACA,OAAOC,sBAAP,MAAmC,qCAAnC;AACA,OAAOC,SAAP,MAAsB,oCAAtB;AACA,OAAOC,iBAAP,MAA8B,2BAA9B;AAEA,SAASH,WAAT,EAAsBC,sBAAtB,EAA8CC,SAA9C,EAAyDC,iBAAzD"}
1
+ {"version":3,"file":"index.js","names":["SearchAdmin","SearchPublishedContent","SearchBar","useDebounceSearch"],"sources":["../src/index.js"],"sourcesContent":["import SearchAdmin from './components/SearchAdmin';\nimport SearchPublishedContent from './components/SearchPublishedContent';\nimport SearchBar from './components/SearchAdmin/SearchBar';\nimport useDebounceSearch from './hooks/useDebounceSearch';\n\nexport { SearchAdmin, SearchPublishedContent, SearchBar, useDebounceSearch };\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,0BAA0B;AAClD,OAAOC,sBAAsB,MAAM,qCAAqC;AACxE,OAAOC,SAAS,MAAM,oCAAoC;AAC1D,OAAOC,iBAAiB,MAAM,2BAA2B;AAEzD,SAASH,WAAW,EAAEC,sBAAsB,EAAEC,SAAS,EAAEC,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-search-ui",
3
- "version": "0.125.0-core-styles.0",
3
+ "version": "0.125.0-f-admin-updates.3",
4
4
  "description": "Blaze plugin search ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -27,7 +27,7 @@
27
27
  },
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
- "@blaze-cms/admin-ui-utils": "^0.124.0",
30
+ "@blaze-cms/admin-ui-utils": "0.125.0-f-admin-updates.3",
31
31
  "@blaze-cms/core-errors": "^0.118.0",
32
32
  "@blaze-cms/setup-ui": "^0.92.0",
33
33
  "@blaze-react/button": "0.5.19",
@@ -52,5 +52,5 @@
52
52
  "lib/*",
53
53
  "lib-es/*"
54
54
  ],
55
- "gitHead": "14973185e5f2ade1d5258477ea188dbc3c6756d2"
55
+ "gitHead": "0489d676d74acdc83aac5cb8a56fb9b212e05c80"
56
56
  }
@@ -1,21 +1,28 @@
1
1
  import React, { useState, useRef, useEffect } from 'react';
2
2
  import classnames from 'classnames';
3
+ import { useDebounce } from '@blaze-react/utils/lib/customHooks';
3
4
  import useLocalStorage from '../useLocalStorage';
4
5
  import SearchBar from './SearchBar';
5
6
  import RecentSearches from './RecentSearches';
6
7
  import SearchResults from './SearchResults';
7
8
  import TriggerModal from './TriggerModal';
9
+ import SearchAdminSideBar from './SearchAdminSideBar';
8
10
  import useSearchResults from '../useSearchResults';
9
11
  import { SEARCH_ADMIN } from '../../constants';
10
12
 
11
13
  const SearchAdmin = () => {
12
14
  const [searchTerm, setSearchTerm] = useState('');
15
+ const [openSearchSideBar, setOpenSearchSideBar] = useState(true);
16
+ const [entityValues, setEntityValues] = useState([]);
17
+
13
18
  const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);
14
19
  const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);
15
20
  const [enableResults, setEnableResults] = useState(true);
16
21
  const searchInputRef = useRef(null);
22
+ const debouncedEntityValues = useDebounce(entityValues, 500);
17
23
  const [{ loading, results, total }, setQueryParams] = useSearchResults({
18
- queryKey: SEARCH_ADMIN
24
+ queryKey: SEARCH_ADMIN,
25
+ entities: debouncedEntityValues.map(e => e.id)
19
26
  });
20
27
 
21
28
  useEffect(
@@ -68,6 +75,10 @@ const SearchAdmin = () => {
68
75
  'modal--show': displaySearchModalFrame
69
76
  });
70
77
 
78
+ const searchModalSideBarClassName = classnames('modal__search__sidebar', {
79
+ 'modal__search__sidebar--close': !openSearchSideBar
80
+ });
81
+
71
82
  const isEmptySearchTermAndData = !searchTerm && !results.length;
72
83
  const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
73
84
  const shouldDisplayRecentSearches =
@@ -75,51 +86,70 @@ const SearchAdmin = () => {
75
86
 
76
87
  const showResults = enableResults && results.length;
77
88
 
89
+ const handleSetEntityValues = newEntity => {
90
+ const entityExists = entityValues.some(entity => entity.id === newEntity.id);
91
+ if (entityExists) {
92
+ setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));
93
+ } else {
94
+ setEntityValues([...entityValues, newEntity]);
95
+ }
96
+ };
97
+
78
98
  return (
79
99
  <div className="search search--header">
80
100
  <TriggerModal toggleSearchModal={toggleSearchModal} />
81
101
  <div className={searchModalResultsClassName}>
82
102
  {displaySearchModalFrame && (
83
- <>
84
- <div className="modal__header modal__header--search">
85
- <SearchBar
86
- toggleSearchModal={toggleSearchModal}
87
- handleKeyDown={handleKeyDown}
88
- searchInputRef={searchInputRef}
89
- handleSearchTerm={handleSearchTerm}
90
- searchTerm={searchTerm}
91
- search={() => search({ value: searchTerm })}
92
- />
93
- </div>
94
- {shouldDisplayRecentSearches ? (
95
- <RecentSearches
96
- recentSearches={recentSearches}
97
- handleSearchTerm={handleSearchTerm}
98
- search={search}
99
- />
100
- ) : (
101
- <>
102
- {!showResults && (
103
- <div className="list list--search">
104
- <div className="header header--list">
105
- <h2>No Results</h2>
103
+ <div className="modal__search">
104
+ <SearchAdminSideBar
105
+ searchModalSideBarClassName={searchModalSideBarClassName}
106
+ openSearchSideBar={openSearchSideBar}
107
+ setOpenSearchSideBar={setOpenSearchSideBar}
108
+ handleSetEntityValues={handleSetEntityValues}
109
+ entityValues={entityValues}
110
+ setEntityValues={setEntityValues}
111
+ />
112
+ <div className="modal__search__content">
113
+ <div className="modal__header modal__header--search">
114
+ <SearchBar
115
+ toggleSearchModal={toggleSearchModal}
116
+ handleKeyDown={handleKeyDown}
117
+ searchInputRef={searchInputRef}
118
+ handleSearchTerm={handleSearchTerm}
119
+ searchTerm={searchTerm}
120
+ search={() => search({ value: searchTerm })}
121
+ />
122
+ </div>
123
+ {shouldDisplayRecentSearches ? (
124
+ <RecentSearches
125
+ recentSearches={recentSearches}
126
+ handleSearchTerm={handleSearchTerm}
127
+ search={search}
128
+ />
129
+ ) : (
130
+ <>
131
+ {!showResults && (
132
+ <div className="list list--search">
133
+ <div className="header header--list">
134
+ <h2>No Results</h2>
135
+ </div>
106
136
  </div>
107
- </div>
108
- )}
109
- </>
110
- )}
111
- {showResults && (
112
- <SearchResults
113
- currentValue={searchTerm}
114
- searchTerm={searchTerm}
115
- loading={loading}
116
- results={results}
117
- total={total}
118
- setQueryParams={setQueryParams}
119
- closeModal={toggleSearchModal}
120
- />
121
- )}
122
- </>
137
+ )}
138
+ </>
139
+ )}
140
+ {showResults && (
141
+ <SearchResults
142
+ currentValue={searchTerm}
143
+ searchTerm={searchTerm}
144
+ loading={loading}
145
+ results={results}
146
+ total={total}
147
+ setQueryParams={setQueryParams}
148
+ closeModal={toggleSearchModal}
149
+ />
150
+ )}
151
+ </div>
152
+ </div>
123
153
  )}
124
154
  </div>
125
155
  </div>
@@ -0,0 +1,88 @@
1
+ import React, { useState } from 'react';
2
+ import { useQuery } from '@apollo/client';
3
+ import { getQuery } from '@blaze-cms/admin-ui-utils';
4
+ import { Checkbox } from '@blaze-react/checkboxes';
5
+
6
+ const MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
7
+
8
+ const SearchAdminSideBar = ({
9
+ searchModalSideBarClassName,
10
+ openSearchSideBar,
11
+ setOpenSearchSideBar,
12
+ handleSetEntityValues,
13
+ entityValues,
14
+ setEntityValues
15
+ }) => {
16
+ const [loadMore, setLoadMore] = useState(false);
17
+ const { data: { getEntitySchemas = [] } = {}, loading } = useQuery(
18
+ getQuery('GET_USER_EDITABLE_ENTITIES'),
19
+ {
20
+ variables: {
21
+ canDoActions: MENU_PERMISSIONS
22
+ }
23
+ }
24
+ );
25
+
26
+ if (loading) return null;
27
+
28
+ const filteredEntitiesSchemas = getEntitySchemas.filter(entity => {
29
+ if (Object.keys(entity.extras).length) {
30
+ return entity.extras.searchIndexes.includes('admin');
31
+ }
32
+ return false;
33
+ });
34
+
35
+ const entitiesToShow = filteredEntitiesSchemas.slice(
36
+ 0,
37
+ loadMore ? filteredEntitiesSchemas.length : 5
38
+ );
39
+
40
+ return (
41
+ <div className={searchModalSideBarClassName}>
42
+ <div
43
+ className="modal__search__sidebar__button"
44
+ role="button"
45
+ onClick={() => setOpenSearchSideBar(!openSearchSideBar)}>
46
+ <i className="material-icons">
47
+ {openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right'}
48
+ </i>
49
+ </div>
50
+ <div className="modal__search__sidebar__container">
51
+ <div className="modal__search__sidebar__wrapper">
52
+ <div className="modal__search__sidebar__filters">
53
+ <i className="material-icons modal__search__sidebar__icon">tune</i>
54
+ <span>Filters</span>
55
+ </div>
56
+ <div
57
+ className="modal__search__sidebar__clear"
58
+ role="button"
59
+ onClick={() => setEntityValues([])}>
60
+ <span>Clear all</span>
61
+ <i className="material-icons modal__search__sidebar__icon--clear">replay</i>
62
+ </div>
63
+ </div>
64
+ <div className="modal__search__sidebar__entity-list">
65
+ <h1>Entity list</h1>
66
+ {entitiesToShow.map(entity => (
67
+ <Checkbox
68
+ checked={entityValues.some(_entity => _entity.id === entity.id)}
69
+ label={entity.displayName}
70
+ id={entity.id}
71
+ name={entity.id}
72
+ onChange={({ value: { checked } }) => handleSetEntityValues(entity)}
73
+ />
74
+ ))}
75
+ <div
76
+ className="modal__search__sidebar__more"
77
+ role="button"
78
+ onClick={() => setLoadMore(!loadMore)}>
79
+ <i className="material-icons">{!loadMore ? 'navigate_next' : 'expand_less'}</i>
80
+ <span>{loadMore ? 'Less' : 'More'}</span>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ );
86
+ };
87
+
88
+ export default SearchAdminSideBar;
@@ -0,0 +1,3 @@
1
+ import SearchAdminSideBar from './SearchAdminSideBar';
2
+
3
+ export default SearchAdminSideBar;
@@ -54,7 +54,9 @@ const SearchResults = ({
54
54
  {loading && <span>Loading...</span>}
55
55
  <div className="modal__content modal__content--search">
56
56
  <div className="header header--list">
57
- <h2>{total} results</h2>
57
+ <h2 className="header--list--results">
58
+ About <b>{total}</b> search keywords results
59
+ </h2>
58
60
  </div>
59
61
  <VirtualList
60
62
  width="100%"
@@ -65,15 +67,24 @@ const SearchResults = ({
65
67
  scrollToIndex={currentIndex}
66
68
  onItemsRendered={handleRenderedItems}
67
69
  renderItem={({ index, style }) => {
68
- const { id, docType, updated, name } = results[index];
70
+ const {
71
+ id,
72
+ docType,
73
+ updated,
74
+ name,
75
+ entityIdentifier,
76
+ published,
77
+ created,
78
+ status
79
+ } = results[index];
69
80
  const updatedDate = updated ? getDateFormat(updated) : null;
81
+ const createdDate = created ? getDateFormat(created) : null;
82
+ const publishedDate = published ? getDateFormat(published) : null;
70
83
  return (
71
84
  <div key={index} style={style} className="list__item--resultWrapper">
72
85
  <div className="list__item list__item--result">
73
86
  <div className="list__item-row list__item-row--result">
74
- <span className="badge badge--primary">
75
- {docType} {updatedDate}
76
- </span>
87
+ <span className="list__item-identifier">{entityIdentifier}</span>
77
88
  <a
78
89
  href={getNavigationRoute({
79
90
  id,
@@ -85,9 +96,34 @@ const SearchResults = ({
85
96
  docType
86
97
  })
87
98
  }
88
- className="list__item-text list__item-text--result">
99
+ className="list__item-link">
89
100
  {name}
90
101
  </a>
102
+
103
+ <div className="list__item-dates">
104
+ {publishedDate && (
105
+ <span>
106
+ <b>Published: </b>
107
+ {publishedDate}
108
+ </span>
109
+ )}
110
+ <span>
111
+ <b>Created: </b>
112
+ {createdDate}
113
+ </span>
114
+ <span>
115
+ <b>Updated: </b>
116
+ {updatedDate}
117
+ </span>
118
+ </div>
119
+ <div className="list__item-status">
120
+ {status && (
121
+ <span>
122
+ <b>Status: </b>
123
+ {status}
124
+ </span>
125
+ )}
126
+ </div>
91
127
  </div>
92
128
  </div>
93
129
  </div>
@@ -5,7 +5,9 @@ import searchQueries from '../../application/query';
5
5
  function useSearch({ queryKey, resultKeys, entities = [], fields }) {
6
6
  const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });
7
7
  const [searchedValue, setSearchedValue] = useState(null);
8
+ const [en, setEn] = useState([]);
8
9
  const [previousOffset, setPreviousOffset] = useState(null);
10
+
9
11
  const buildSearchQuery = searchQueries[queryKey];
10
12
  const [
11
13
  getSearchResults,
@@ -28,13 +30,14 @@ function useSearch({ queryKey, resultKeys, entities = [], fields }) {
28
30
  const { limit, offset, value } = queryParams;
29
31
  const isNewValueSet = value && value !== searchedValue;
30
32
  const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
33
+ const notSameLength = en.length !== entities.length;
31
34
  const parsedEntities = entities.length
32
35
  ? entities.map(entity => ({
33
36
  match: { docType: entity }
34
37
  }))
35
38
  : [];
36
39
 
37
- if (isNewValueSet || isNewOffsetSet) {
40
+ if (isNewValueSet || isNewOffsetSet || notSameLength) {
38
41
  getSearchResults({
39
42
  variables: {
40
43
  limit,
@@ -64,6 +67,7 @@ function useSearch({ queryKey, resultKeys, entities = [], fields }) {
64
67
  });
65
68
  setSearchedValue(value);
66
69
  setPreviousOffset(offset);
70
+ setEn(entities);
67
71
  }
68
72
  },
69
73
  [
@@ -75,7 +79,9 @@ function useSearch({ queryKey, resultKeys, entities = [], fields }) {
75
79
  previousOffset,
76
80
  getSearchResults,
77
81
  entities,
78
- fields
82
+ fields,
83
+ entities.length,
84
+ en.length
79
85
  ]
80
86
  );
81
87
 
@@ -1,4 +1,3 @@
1
- import { useState, useEffect } from 'react';
2
1
  import useSearch from '../useSearch';
3
2
 
4
3
  function useSearchResults({ queryKey, resultKeys, entities, fields }) {
@@ -10,21 +9,8 @@ function useSearchResults({ queryKey, resultKeys, entities, fields }) {
10
9
  },
11
10
  setParams
12
11
  ] = useSearch({ queryKey, resultKeys, entities, fields });
13
- const [currentResults, setCurrentResults] = useState([]);
14
- const [allResults, setAllResults] = useState([]);
15
-
16
- useEffect(
17
- () => {
18
- if (currentResults.length !== results.length) {
19
- setAllResults([...allResults, ...results]);
20
- setCurrentResults(results);
21
- }
22
- },
23
- [allResults, currentResults, currentResults.length, results]
24
- );
25
12
 
26
13
  const clearList = params => {
27
- setAllResults([]);
28
14
  setParams({ ...params, offset: 0 });
29
15
  };
30
16
 
@@ -32,7 +18,7 @@ function useSearchResults({ queryKey, resultKeys, entities, fields }) {
32
18
  params.value !== searchedValue ? clearList(params) : setParams(params);
33
19
  };
34
20
 
35
- return [{ loading, results: allResults, total }, setQueryParams];
21
+ return [{ loading, results, total }, setQueryParams];
36
22
  }
37
23
 
38
24
  export default useSearchResults;