@blaze-cms/plugin-media-ui 0.121.0 → 0.122.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/components/FileList/useGetFiles/getFiles.js +58 -144
  3. package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
  4. package/lib/components/FileList/useGetFiles/useGetFiles.js +4 -3
  5. package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
  6. package/lib/components/FileList/useGetFilesList/useGetFilesList.js +22 -23
  7. package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  8. package/lib/components/FilterPanel/FilterPanel.js +5 -19
  9. package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
  10. package/lib/components/ListingContainer/ListingContainer.js +54 -6
  11. package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
  12. package/lib/constants.js +1 -1
  13. package/lib/constants.js.map +1 -1
  14. package/lib-es/components/FileList/useGetFiles/getFiles.js +30 -82
  15. package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
  16. package/lib-es/components/FileList/useGetFiles/useGetFiles.js +4 -3
  17. package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
  18. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +20 -21
  19. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  20. package/lib-es/components/FilterPanel/FilterPanel.js +5 -15
  21. package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
  22. package/lib-es/components/ListingContainer/ListingContainer.js +30 -2
  23. package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -1
  24. package/lib-es/constants.js +1 -1
  25. package/lib-es/constants.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/components/FileList/useGetFiles/getFiles.js +27 -62
  28. package/src/components/FileList/useGetFiles/useGetFiles.js +5 -4
  29. package/src/components/FileList/useGetFilesList/useGetFilesList.js +16 -24
  30. package/src/components/FilterPanel/FilterPanel.js +9 -11
  31. package/src/components/ListingContainer/ListingContainer.js +18 -2
  32. package/src/constants.js +1 -1
@@ -7,9 +7,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
7
7
  import { useState, useEffect } from 'react';
8
8
  import differenceWith from 'lodash.differencewith';
9
9
  import isEqual from 'lodash.isequal';
10
- import { useApolloClient } from '@apollo/client';
11
10
  import useGetFiles from '../useGetFiles';
12
- import getCounters from './getCounters';
13
11
 
14
12
  function useGetFilesList() {
15
13
  const [{
@@ -28,11 +26,15 @@ function useGetFilesList() {
28
26
  const [currentResults, setCurrentResults] = useState([]);
29
27
  const [allResults, setAllResults] = useState([]);
30
28
  const [currentFilter, setCurrentFilter] = useState(null);
31
- const [allFilesCounter, setAllFilesCounter] = useState(null);
29
+ const [allFilesCounter, setAllFilesCounter] = useState({
30
+ all: 0,
31
+ text: 0,
32
+ image: 0,
33
+ video: 0
34
+ });
32
35
  const [counters, setCounters] = useState(null);
33
- const client = useApolloClient();
34
36
  useEffect(() => {
35
- if (queryParams.isSearch && all && image && video && text) {
37
+ if (all && image && video && text) {
36
38
  setCounters({
37
39
  all: all.total,
38
40
  image: image.total,
@@ -40,15 +42,8 @@ function useGetFilesList() {
40
42
  text: text.total
41
43
  });
42
44
  }
43
- }, [queryParams.isSearch, all, image, video, text]);
45
+ }, [all, image, video, text]);
44
46
  useEffect(() => {
45
- if (counters === null) {
46
- getCounters(client).then(initialCounter => {
47
- setCounters(initialCounter);
48
- setAllFilesCounter(initialCounter);
49
- });
50
- }
51
-
52
47
  if (!currentFilter && previousFilter) {
53
48
  setCurrentFilter(previousFilter);
54
49
  }
@@ -66,7 +61,7 @@ function useGetFilesList() {
66
61
  setCurrentResults(results);
67
62
  }
68
63
 
69
- const shouldSetContentIfListIsVoid = !isContentDifferent && !allResults.length && results.length && allFilesCounter[currentFilter] !== 0;
64
+ const shouldSetContentIfListIsVoid = !isContentDifferent && !allResults.length && results.length;
70
65
 
71
66
  if (shouldSetContentIfListIsVoid) {
72
67
  setAllResults(results);
@@ -164,25 +159,27 @@ function useGetFilesList() {
164
159
  const setQueryParams = params => {
165
160
  const isNewSearchTerm = params.isSearch && previousSearchTerm !== params.searchTerm;
166
161
  const hasDeletedSearchTerm = previousSearchTerm && params.searchTerm === null;
167
- const isNewFilter = params.where.type !== previousFilter;
162
+ const newFilter = JSON.stringify(params.where);
163
+ const isNewFilter = newFilter !== previousFilter;
168
164
  const shouldClearList = hasDeletedSearchTerm || isNewFilter || isNewSearchTerm;
169
165
  shouldClearList ? clearList(params) : setParams(params);
170
- setCurrentFilter(params.where.type);
166
+ setCurrentFilter(newFilter);
171
167
  };
172
168
 
173
169
  const parsedQueryParams = _objectSpread(_objectSpread({}, queryParams), {}, {
174
- where: currentFilter === 'all' ? {} : queryParams.where
170
+ where: _objectSpread({}, queryParams.where)
175
171
  });
176
172
 
173
+ if (parsedQueryParams.where.type === 'all') delete parsedQueryParams.where.type;
177
174
  return [{
178
175
  queryParams: parsedQueryParams,
179
176
  loading,
180
177
  data: {
181
178
  files: allResults,
182
- all: counters ? counters.all : 0,
183
- images: counters ? counters.image : 0,
184
- videos: counters ? counters.video : 0,
185
- documents: counters ? counters.text : 0
179
+ all: counters ? formatCounterNumber(counters.all) : 0,
180
+ images: counters ? formatCounterNumber(counters.image) : 0,
181
+ videos: counters ? formatCounterNumber(counters.video) : 0,
182
+ documents: counters ? formatCounterNumber(counters.text) : 0
186
183
  }
187
184
  }, {
188
185
  setQueryParams,
@@ -193,5 +190,7 @@ function useGetFilesList() {
193
190
  }];
194
191
  }
195
192
 
193
+ const formatCounterNumber = n => n === 10000 ? '10000+' : n;
194
+
196
195
  export default useGetFilesList;
197
196
  //# sourceMappingURL=useGetFilesList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/FileList/useGetFilesList/useGetFilesList.js"],"names":["useState","useEffect","differenceWith","isEqual","useApolloClient","useGetFiles","getCounters","useGetFilesList","queryParams","previousFilter","previousSearchTerm","loading","data","files","results","all","image","video","text","setParams","currentResults","setCurrentResults","allResults","setAllResults","currentFilter","setCurrentFilter","allFilesCounter","setAllFilesCounter","counters","setCounters","client","isSearch","total","then","initialCounter","isContentDifferent","length","shouldSetContentIfListIsVoid","removeFile","index","resultsToUpdate","splice","currentFileType","type","updatedFileTypeCounterValue","updateAllFilesCounter","updatedCounters","updateFile","file","addNewFile","newFiles","_image","_video","_text","reduce","acc","searchTerm","clearList","params","offset","setQueryParams","isNewSearchTerm","hasDeletedSearchTerm","isNewFilter","where","shouldClearList","parsedQueryParams","images","videos","documents"],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport differenceWith from 'lodash.differencewith';\nimport isEqual from 'lodash.isequal';\nimport { useApolloClient } from '@apollo/client';\nimport useGetFiles from '../useGetFiles';\nimport getCounters from './getCounters';\n\nfunction useGetFilesList() {\n const [\n {\n queryParams,\n previousFilter,\n previousSearchTerm,\n loading,\n data: { files: results, all, image, video, text }\n },\n setParams\n ] = useGetFiles();\n const [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [currentFilter, setCurrentFilter] = useState(null);\n const [allFilesCounter, setAllFilesCounter] = useState(null);\n const [counters, setCounters] = useState(null);\n const client = useApolloClient();\n\n useEffect(\n () => {\n if (queryParams.isSearch && all && image && video && text) {\n setCounters({\n all: all.total,\n image: image.total,\n video: video.total,\n text: text.total\n });\n }\n },\n [queryParams.isSearch, all, image, video, text]\n );\n\n useEffect(\n () => {\n if (counters === null) {\n getCounters(client).then(initialCounter => {\n setCounters(initialCounter);\n setAllFilesCounter(initialCounter);\n });\n }\n if (!currentFilter && previousFilter) {\n setCurrentFilter(previousFilter);\n }\n\n if (currentFilter !== previousFilter) {\n setAllResults([]);\n setCurrentResults([]);\n return;\n }\n\n const isContentDifferent = !!differenceWith(results, currentResults, isEqual).length;\n\n if (isContentDifferent) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n\n const shouldSetContentIfListIsVoid =\n !isContentDifferent &&\n !allResults.length &&\n results.length &&\n allFilesCounter[currentFilter] !== 0;\n\n if (shouldSetContentIfListIsVoid) {\n setAllResults(results);\n setCurrentResults(results);\n }\n },\n [currentFilter, currentResults, currentResults.length, previousFilter, results] //eslint-disable-line\n );\n\n const removeFile = ({ index }) => {\n const resultsToUpdate = [...allResults];\n resultsToUpdate.splice(index, 1);\n const currentFileType = resultsToUpdate[index].type;\n const updatedFileTypeCounterValue = allFilesCounter[currentFileType] - 1;\n const updateAllFilesCounter = allFilesCounter.all - 1;\n if (queryParams.isSearch) {\n setCounters({\n ...counters,\n [currentFileType]: counters[currentFileType] - 1,\n all: counters.all - 1\n });\n setAllFilesCounter({\n ...allFilesCounter,\n [currentFileType]: updatedFileTypeCounterValue,\n all: updateAllFilesCounter\n });\n }\n\n if (!queryParams.isSearch) {\n const updatedCounters = {\n ...allFilesCounter,\n [currentFileType]: updatedFileTypeCounterValue,\n all: updateAllFilesCounter\n };\n\n setCounters(updatedCounters);\n setAllFilesCounter(updatedCounters);\n }\n setAllResults(resultsToUpdate);\n };\n\n const updateFile = ({ file, index }) => {\n const resultsToUpdate = [...allResults];\n resultsToUpdate[index] = file;\n setAllResults(resultsToUpdate);\n };\n\n const addNewFile = newFiles => {\n const { image: _image, video: _video, text: _text } = newFiles.reduce(\n (acc, { type }) => {\n acc[type] += 1;\n return acc;\n },\n { image: 0, video: 0, text: 0 }\n );\n\n if (queryParams.isSearch) {\n setAllResults([]);\n setParams({ queryParams, isSearch: false, searchTerm: null });\n }\n\n const updatedCounters = {\n all: allFilesCounter.all + _image + _video + _text,\n image: allFilesCounter.image + _image,\n video: allFilesCounter.video + _video,\n text: allFilesCounter.text + _text\n };\n\n setCounters(updatedCounters);\n setAllFilesCounter(updatedCounters);\n setAllResults([...newFiles, ...allResults]);\n };\n\n const clearList = params => {\n setAllResults([]);\n setParams({ ...params, offset: 0 });\n setCounters(allFilesCounter);\n };\n\n const setQueryParams = params => {\n const isNewSearchTerm = params.isSearch && previousSearchTerm !== params.searchTerm;\n const hasDeletedSearchTerm = previousSearchTerm && params.searchTerm === null;\n const isNewFilter = params.where.type !== previousFilter;\n const shouldClearList = hasDeletedSearchTerm || isNewFilter || isNewSearchTerm;\n shouldClearList ? clearList(params) : setParams(params);\n setCurrentFilter(params.where.type);\n };\n\n const parsedQueryParams = {\n ...queryParams,\n where: currentFilter === 'all' ? {} : queryParams.where\n };\n\n return [\n {\n queryParams: parsedQueryParams,\n loading,\n data: {\n files: allResults,\n all: counters ? counters.all : 0,\n images: counters ? counters.image : 0,\n videos: counters ? counters.video : 0,\n documents: counters ? counters.text : 0\n }\n },\n { setQueryParams, clearList, removeFile, addNewFile, updateFile }\n ];\n}\n\nexport default useGetFilesList;\n"],"file":"useGetFilesList.js"}
1
+ {"version":3,"sources":["../../../../src/components/FileList/useGetFilesList/useGetFilesList.js"],"names":["useState","useEffect","differenceWith","isEqual","useGetFiles","useGetFilesList","queryParams","previousFilter","previousSearchTerm","loading","data","files","results","all","image","video","text","setParams","currentResults","setCurrentResults","allResults","setAllResults","currentFilter","setCurrentFilter","allFilesCounter","setAllFilesCounter","counters","setCounters","total","isContentDifferent","length","shouldSetContentIfListIsVoid","removeFile","index","resultsToUpdate","splice","currentFileType","type","updatedFileTypeCounterValue","updateAllFilesCounter","isSearch","updatedCounters","updateFile","file","addNewFile","newFiles","_image","_video","_text","reduce","acc","searchTerm","clearList","params","offset","setQueryParams","isNewSearchTerm","hasDeletedSearchTerm","newFilter","JSON","stringify","where","isNewFilter","shouldClearList","parsedQueryParams","formatCounterNumber","images","videos","documents","n"],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport differenceWith from 'lodash.differencewith';\nimport isEqual from 'lodash.isequal';\nimport useGetFiles from '../useGetFiles';\n\nfunction useGetFilesList() {\n const [\n {\n queryParams,\n previousFilter,\n previousSearchTerm,\n loading,\n data: { files: results, all, image, video, text }\n },\n setParams\n ] = useGetFiles();\n const [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [currentFilter, setCurrentFilter] = useState(null);\n const [allFilesCounter, setAllFilesCounter] = useState({ all: 0, text: 0, image: 0, video: 0 });\n const [counters, setCounters] = useState(null);\n\n useEffect(\n () => {\n if (all && image && video && text) {\n setCounters({\n all: all.total,\n image: image.total,\n video: video.total,\n text: text.total\n });\n }\n },\n [all, image, video, text]\n );\n\n useEffect(\n () => {\n if (!currentFilter && previousFilter) {\n setCurrentFilter(previousFilter);\n }\n\n if (currentFilter !== previousFilter) {\n setAllResults([]);\n setCurrentResults([]);\n return;\n }\n\n const isContentDifferent = !!differenceWith(results, currentResults, isEqual).length;\n if (isContentDifferent) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n\n const shouldSetContentIfListIsVoid =\n !isContentDifferent && !allResults.length && results.length;\n\n if (shouldSetContentIfListIsVoid) {\n setAllResults(results);\n setCurrentResults(results);\n }\n },\n [currentFilter, currentResults, currentResults.length, previousFilter, results] //eslint-disable-line\n );\n\n const removeFile = ({ index }) => {\n const resultsToUpdate = [...allResults];\n resultsToUpdate.splice(index, 1);\n const currentFileType = resultsToUpdate[index].type;\n const updatedFileTypeCounterValue = allFilesCounter[currentFileType] - 1;\n const updateAllFilesCounter = allFilesCounter.all - 1;\n if (queryParams.isSearch) {\n setCounters({\n ...counters,\n [currentFileType]: counters[currentFileType] - 1,\n all: counters.all - 1\n });\n setAllFilesCounter({\n ...allFilesCounter,\n [currentFileType]: updatedFileTypeCounterValue,\n all: updateAllFilesCounter\n });\n }\n\n if (!queryParams.isSearch) {\n const updatedCounters = {\n ...allFilesCounter,\n [currentFileType]: updatedFileTypeCounterValue,\n all: updateAllFilesCounter\n };\n\n setCounters(updatedCounters);\n setAllFilesCounter(updatedCounters);\n }\n setAllResults(resultsToUpdate);\n };\n\n const updateFile = ({ file, index }) => {\n const resultsToUpdate = [...allResults];\n resultsToUpdate[index] = file;\n setAllResults(resultsToUpdate);\n };\n\n const addNewFile = newFiles => {\n const { image: _image, video: _video, text: _text } = newFiles.reduce(\n (acc, { type }) => {\n acc[type] += 1;\n return acc;\n },\n { image: 0, video: 0, text: 0 }\n );\n\n if (queryParams.isSearch) {\n setAllResults([]);\n setParams({ queryParams, isSearch: false, searchTerm: null });\n }\n\n const updatedCounters = {\n all: allFilesCounter.all + _image + _video + _text,\n image: allFilesCounter.image + _image,\n video: allFilesCounter.video + _video,\n text: allFilesCounter.text + _text\n };\n\n setCounters(updatedCounters);\n setAllFilesCounter(updatedCounters);\n setAllResults([...newFiles, ...allResults]);\n };\n\n const clearList = params => {\n setAllResults([]);\n setParams({ ...params, offset: 0 });\n setCounters(allFilesCounter);\n };\n\n const setQueryParams = params => {\n const isNewSearchTerm = params.isSearch && previousSearchTerm !== params.searchTerm;\n const hasDeletedSearchTerm = previousSearchTerm && params.searchTerm === null;\n const newFilter = JSON.stringify(params.where);\n const isNewFilter = newFilter !== previousFilter;\n const shouldClearList = hasDeletedSearchTerm || isNewFilter || isNewSearchTerm;\n shouldClearList ? clearList(params) : setParams(params);\n setCurrentFilter(newFilter);\n };\n\n const parsedQueryParams = {\n ...queryParams,\n where: { ...queryParams.where }\n };\n\n if (parsedQueryParams.where.type === 'all') delete parsedQueryParams.where.type;\n\n return [\n {\n queryParams: parsedQueryParams,\n loading,\n data: {\n files: allResults,\n all: counters ? formatCounterNumber(counters.all) : 0,\n images: counters ? formatCounterNumber(counters.image) : 0,\n videos: counters ? formatCounterNumber(counters.video) : 0,\n documents: counters ? formatCounterNumber(counters.text) : 0\n }\n },\n { setQueryParams, clearList, removeFile, addNewFile, updateFile }\n ];\n}\n\nconst formatCounterNumber = n => (n === 10000 ? '10000+' : n);\n\nexport default useGetFilesList;\n"],"file":"useGetFilesList.js"}
@@ -5,8 +5,6 @@ import React, { useState, useEffect } from 'react';
5
5
  import { SearchBar } from '@blaze-cms/plugin-search-ui';
6
6
  import classnames from 'classnames';
7
7
  import Select from '@blaze-react/select';
8
- import { getQuery } from '@blaze-cms/admin-ui-utils';
9
- import { useQuery } from '@apollo/client';
10
8
  import { useMediaContext, MediaContext } from '../../utils/media-context';
11
9
  import useFileList from '../FileList/useFileList';
12
10
 
@@ -15,23 +13,14 @@ const FilterPanel = () => {
15
13
  const {
16
14
  filters,
17
15
  selectedFilter,
18
- changeSelectedFilter
16
+ changeSelectedFilter,
17
+ fileStores
19
18
  } = useMediaContext(MediaContext);
20
19
  const {
21
20
  queryParams,
22
21
  data
23
22
  } = useFileList();
24
23
  const [active, setActive] = useState(filters[0].id);
25
- const fileStoresType = getQuery('GET_FILE_STORES');
26
- const {
27
- data: {
28
- getFileStores: storeType = []
29
- } = {}
30
- } = useQuery(fileStoresType, {
31
- variables: {
32
- visibleInAdmin: true
33
- }
34
- });
35
24
  useEffect(() => {
36
25
  if (queryParams.searchTerm === null) {
37
26
  setSearchTerm('');
@@ -104,7 +93,7 @@ const FilterPanel = () => {
104
93
  return acc;
105
94
  }, {});
106
95
  const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);
107
- const storeOptions = (storeType || []).map(type => [type.key, type.name]);
96
+ const storeOptions = (fileStores || []).map(type => [type.key, type.name]);
108
97
  return /*#__PURE__*/React.createElement("div", {
109
98
  className: "filter-panel"
110
99
  }, /*#__PURE__*/React.createElement("div", {
@@ -132,7 +121,8 @@ const FilterPanel = () => {
132
121
  className: "select__wrapper"
133
122
  }, /*#__PURE__*/React.createElement(Select, {
134
123
  options: storeOptions,
135
- onChange: onSelectFilter
124
+ onChange: onSelectFilter,
125
+ selected: selectedFilter.storeKey
136
126
  })), /*#__PURE__*/React.createElement(SearchBar, {
137
127
  search: () => changeSelectedFilter({
138
128
  filter: selectedFilter.filter,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"names":["React","useState","useEffect","SearchBar","classnames","Select","getQuery","useQuery","useMediaContext","MediaContext","useFileList","FilterPanel","searchTerm","setSearchTerm","filters","selectedFilter","changeSelectedFilter","queryParams","data","active","setActive","id","fileStoresType","getFileStores","storeType","variables","visibleInAdmin","handleSearchTerm","target","value","storeKey","onChangeFilter","filter","isSearch","handleKeyDown","key","trim","onSelectFilter","activeSegements","reduce","acc","index","activeBarSegment","storeOptions","map","type","name","label"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState, useEffect } from 'react';\nimport { SearchBar } from '@blaze-cms/plugin-search-ui';\nimport classnames from 'classnames';\nimport Select from '@blaze-react/select';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { useQuery } from '@apollo/client';\nimport { useMediaContext, MediaContext } from '../../utils/media-context';\nimport useFileList from '../FileList/useFileList';\n\nconst FilterPanel = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const { filters, selectedFilter, changeSelectedFilter } = useMediaContext(MediaContext);\n const { queryParams, data } = useFileList();\n const [active, setActive] = useState(filters[0].id);\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n useEffect(\n () => {\n if (queryParams.searchTerm === null) {\n setSearchTerm('');\n }\n },\n [queryParams.searchTerm]\n );\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n\n const storeKey = selectedFilter.storeKey || '';\n\n const onChangeFilter = id => {\n setActive(id);\n searchTerm\n ? changeSelectedFilter({\n filter: id,\n isSearch: true,\n searchTerm,\n storeKey\n })\n : changeSelectedFilter({\n filter: id,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n }\n };\n\n const onSelectFilter = ({ value }) => {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey: value\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey: value\n });\n };\n\n const activeSegements = filters.reduce((acc, { id }, index) => {\n acc[`active-${index}`] = active === id;\n return acc;\n }, {});\n const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);\n\n const storeOptions = (storeType || []).map(type => [type.key, type.name]);\n\n return (\n <div className=\"filter-panel\">\n <div className=\"filter-panel__wrapper\">\n <ul className=\"filter-panel__list\">\n {filters.map(\n ({ label, id }) =>\n selectedFilter.filter !== id ? (\n <li key={label} className=\"filter-panel__list-item\">\n <a onClick={() => onChangeFilter(id)}>\n {label} ({data[id]})\n </a>\n </li>\n ) : (\n <li key={label} className=\"filter-panel__list-item active\">\n {label} ({data[id]})\n </li>\n )\n )}\n </ul>\n <div className=\"filter-panel__barWrapper\">\n <div className={activeBarSegment} />\n </div>\n </div>\n <div className=\"filter-panel__searchBarWrapper\">\n <div className=\"select__wrapper\">\n <Select options={storeOptions} onChange={onSelectFilter} />\n </div>\n <SearchBar\n search={() =>\n changeSelectedFilter({ filter: selectedFilter.filter, isSearch: true, searchTerm })\n }\n handleKeyDown={handleKeyDown}\n searchTerm={searchTerm}\n handleSearchTerm={handleSearchTerm}\n placeholder=\"Search term here...\"\n close={false}\n />\n </div>\n </div>\n );\n};\n\nexport default FilterPanel;\n"],"file":"FilterPanel.js"}
1
+ {"version":3,"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"names":["React","useState","useEffect","SearchBar","classnames","Select","useMediaContext","MediaContext","useFileList","FilterPanel","searchTerm","setSearchTerm","filters","selectedFilter","changeSelectedFilter","fileStores","queryParams","data","active","setActive","id","handleSearchTerm","target","value","storeKey","onChangeFilter","filter","isSearch","handleKeyDown","key","trim","onSelectFilter","activeSegements","reduce","acc","index","activeBarSegment","storeOptions","map","type","name","label"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, { useState, useEffect } from 'react';\nimport { SearchBar } from '@blaze-cms/plugin-search-ui';\nimport classnames from 'classnames';\nimport Select from '@blaze-react/select';\nimport { useMediaContext, MediaContext } from '../../utils/media-context';\nimport useFileList from '../FileList/useFileList';\n\nconst FilterPanel = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const { filters, selectedFilter, changeSelectedFilter, fileStores } = useMediaContext(\n MediaContext\n );\n const { queryParams, data } = useFileList();\n const [active, setActive] = useState(filters[0].id);\n\n useEffect(\n () => {\n if (queryParams.searchTerm === null) {\n setSearchTerm('');\n }\n },\n [queryParams.searchTerm]\n );\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n\n const storeKey = selectedFilter.storeKey || '';\n\n const onChangeFilter = id => {\n setActive(id);\n searchTerm\n ? changeSelectedFilter({\n filter: id,\n isSearch: true,\n searchTerm,\n storeKey\n })\n : changeSelectedFilter({\n filter: id,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey\n });\n }\n };\n\n const onSelectFilter = ({ value }) => {\n searchTerm\n ? changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm: searchTerm.trim(),\n storeKey: value\n })\n : changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: false,\n searchTerm: null,\n storeKey: value\n });\n };\n\n const activeSegements = filters.reduce((acc, { id }, index) => {\n acc[`active-${index}`] = active === id;\n return acc;\n }, {});\n const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);\n const storeOptions = (fileStores || []).map(type => [type.key, type.name]);\n\n return (\n <div className=\"filter-panel\">\n <div className=\"filter-panel__wrapper\">\n <ul className=\"filter-panel__list\">\n {filters.map(\n ({ label, id }) =>\n selectedFilter.filter !== id ? (\n <li key={label} className=\"filter-panel__list-item\">\n <a onClick={() => onChangeFilter(id)}>\n {label} ({data[id]})\n </a>\n </li>\n ) : (\n <li key={label} className=\"filter-panel__list-item active\">\n {label} ({data[id]})\n </li>\n )\n )}\n </ul>\n <div className=\"filter-panel__barWrapper\">\n <div className={activeBarSegment} />\n </div>\n </div>\n <div className=\"filter-panel__searchBarWrapper\">\n <div className=\"select__wrapper\">\n <Select\n options={storeOptions}\n onChange={onSelectFilter}\n selected={selectedFilter.storeKey}\n />\n </div>\n <SearchBar\n search={() =>\n changeSelectedFilter({ filter: selectedFilter.filter, isSearch: true, searchTerm })\n }\n handleKeyDown={handleKeyDown}\n searchTerm={searchTerm}\n handleSearchTerm={handleSearchTerm}\n placeholder=\"Search term here...\"\n close={false}\n />\n </div>\n </div>\n );\n};\n\nexport default FilterPanel;\n"],"file":"FilterPanel.js"}
@@ -1,5 +1,13 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ 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
+ 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
+
1
7
  import React, { useState } from 'react';
2
8
  import PropTypes from 'prop-types';
9
+ import { useQuery } from '@apollo/client';
10
+ import { getQuery } from '@blaze-cms/admin-ui-utils';
3
11
  import Listing from './Listing';
4
12
  import { availableFilters } from '../../utils/available-filters/available-filters';
5
13
  import { MediaContextProvider } from '../../utils/media-context';
@@ -16,8 +24,21 @@ const ListingContainer = ({
16
24
  const [selectedFilter, setSelectedFilter] = useState({
17
25
  filter: 'all',
18
26
  isSearch: false,
19
- searchTerm: null
27
+ searchTerm: null,
28
+ storeKey: null
29
+ });
30
+ const fileStoresType = getQuery('GET_FILE_STORES');
31
+ const {
32
+ loading,
33
+ data: {
34
+ getFileStores: fileStores = []
35
+ } = {}
36
+ } = useQuery(fileStoresType, {
37
+ variables: {
38
+ visibleInAdmin: true
39
+ }
20
40
  });
41
+ if (loading) return null;
21
42
 
22
43
  const getSelectedFiles = ({
23
44
  id
@@ -36,10 +57,17 @@ const ListingContainer = ({
36
57
 
37
58
  const handleDisplayFileUploadModal = param => setDisplayFileUploadModal(param);
38
59
 
60
+ const defaultFileStore = (fileStores.find(({
61
+ isDefault
62
+ }) => isDefault) || {}).key;
39
63
  return /*#__PURE__*/React.createElement(MediaContextProvider, {
40
64
  value: {
65
+ fileStores,
66
+ defaultFileStore,
41
67
  changeSelectedFilter: value => setSelectedFilter(value),
42
- selectedFilter,
68
+ selectedFilter: _objectSpread(_objectSpread({}, selectedFilter), {}, {
69
+ storeKey: selectedFilter.storeKey || defaultFileStore
70
+ }),
43
71
  selectedFiles,
44
72
  getSelectedFiles,
45
73
  filters: availableFilters,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ListingContainer/ListingContainer.js"],"names":["React","useState","PropTypes","Listing","availableFilters","MediaContextProvider","FilesListProvider","existPrevious","ListingContainer","handleSelectedFiles","maxItems","filesSelected","displayFileUploadModal","setDisplayFileUploadModal","selectedFiles","setSelectedFiles","selectedFilter","setSelectedFilter","filter","isSearch","searchTerm","getSelectedFiles","id","existPreviousFile","length","allSelectedFiles","fileId","handleDisplayFileUploadModal","param","changeSelectedFilter","value","filters","onClickPrompt","propTypes","func","oneOfType","number","bool","arrayOf","string","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,SAASC,gBAAT,QAAiC,iDAAjC;AACA,SAASC,oBAAT,QAAqC,2BAArC;AACA,OAAOC,iBAAP,MAA8B,+BAA9B;AACA,SAASC,aAAT,QAA8B,WAA9B;;AAEA,MAAMC,gBAAgB,GAAG,CAAC;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA,QAAvB;AAAiCC,EAAAA;AAAjC,CAAD,KAAsD;AAC7E,QAAM,CAACC,sBAAD,EAAyBC,yBAAzB,IAAsDZ,QAAQ,CAAC,KAAD,CAApE;AACA,QAAM,CAACa,aAAD,EAAgBC,gBAAhB,IAAoCd,QAAQ,CAACU,aAAa,IAAI,EAAlB,CAAlD;AACA,QAAM,CAACK,cAAD,EAAiBC,iBAAjB,IAAsChB,QAAQ,CAAC;AACnDiB,IAAAA,MAAM,EAAE,KAD2C;AAEnDC,IAAAA,QAAQ,EAAE,KAFyC;AAGnDC,IAAAA,UAAU,EAAE;AAHuC,GAAD,CAApD;;AAMA,QAAMC,gBAAgB,GAAG,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAY;AACnC,UAAMC,iBAAiB,GAAGhB,aAAa,CAACO,aAAD,EAAgBQ,EAAhB,CAAvC;;AAEA,QAAIZ,QAAQ,KAAKI,aAAa,CAACU,MAA3B,IAAqC,CAACD,iBAA1C,EAA6D;AAC3Dd,MAAAA,mBAAmB,CAAC,CAACa,EAAD,CAAD,EAAO,KAAP,CAAnB;AACAP,MAAAA,gBAAgB,CAAC,CAACO,EAAD,CAAD,CAAhB;AACD,KAHD,MAGO;AACL,YAAMG,gBAAgB,GAAGF,iBAAiB,GACtCT,aAAa,CAACI,MAAd,CAAqBQ,MAAM,IAAIA,MAAM,KAAKH,iBAA1C,CADsC,GAEtC,CAAC,GAAGT,aAAJ,EAAmBQ,EAAnB,CAFJ;AAIAb,MAAAA,mBAAmB,CAACgB,gBAAD,EAAmB,KAAnB,CAAnB;AACAV,MAAAA,gBAAgB,CAACU,gBAAD,CAAhB;AACD;AACF,GAdD;;AAgBA,QAAME,4BAA4B,GAAGC,KAAK,IAAIf,yBAAyB,CAACe,KAAD,CAAvE;;AAEA,sBACE,oBAAC,oBAAD;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,oBAAoB,EAAEC,KAAK,IAAIb,iBAAiB,CAACa,KAAD,CAD3C;AAELd,MAAAA,cAFK;AAGLF,MAAAA,aAHK;AAILO,MAAAA,gBAJK;AAKLU,MAAAA,OAAO,EAAE3B,gBALJ;AAML4B,MAAAA,aAAa,EAAE,MAAML,4BAA4B,CAAC,IAAD;AAN5C;AADT,kBASE,oBAAC,iBAAD,qBACE,oBAAC,OAAD;AACE,IAAA,sBAAsB,EAAEf,sBAD1B;AAEE,IAAA,4BAA4B,EAAEe;AAFhC,IADF,CATF,CADF;AAkBD,CA7CD;;AA+CAnB,gBAAgB,CAACyB,SAAjB,GAA6B;AAC3BxB,EAAAA,mBAAmB,EAAEP,SAAS,CAACgC,IADJ;AAE3BxB,EAAAA,QAAQ,EAAER,SAAS,CAACiC,SAAV,CAAoB,CAACjC,SAAS,CAACkC,MAAX,EAAmBlC,SAAS,CAACmC,IAA7B,CAApB,CAFiB;AAG3B1B,EAAAA,aAAa,EAAET,SAAS,CAACoC,OAAV,CAAkBpC,SAAS,CAACqC,MAA5B;AAHY,CAA7B;AAMA/B,gBAAgB,CAACgC,YAAjB,GAAgC;AAC9B/B,EAAAA,mBAAmB,EAAE,MAAM,CAAE,CADC;AAE9BC,EAAAA,QAAQ,EAAE,KAFoB;AAG9BC,EAAAA,aAAa,EAAE;AAHe,CAAhC;AAMA,eAAeH,gBAAf","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Listing from './Listing';\nimport { availableFilters } from '../../utils/available-filters/available-filters';\nimport { MediaContextProvider } from '../../utils/media-context';\nimport FilesListProvider from '../FileList/FilesListProvider';\nimport { existPrevious } from './mappers';\n\nconst ListingContainer = ({ handleSelectedFiles, maxItems, filesSelected }) => {\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState(filesSelected || []);\n const [selectedFilter, setSelectedFilter] = useState({\n filter: 'all',\n isSearch: false,\n searchTerm: null\n });\n\n const getSelectedFiles = ({ id }) => {\n const existPreviousFile = existPrevious(selectedFiles, id);\n\n if (maxItems === selectedFiles.length && !existPreviousFile) {\n handleSelectedFiles([id], false);\n setSelectedFiles([id]);\n } else {\n const allSelectedFiles = existPreviousFile\n ? selectedFiles.filter(fileId => fileId !== existPreviousFile)\n : [...selectedFiles, id];\n\n handleSelectedFiles(allSelectedFiles, false);\n setSelectedFiles(allSelectedFiles);\n }\n };\n\n const handleDisplayFileUploadModal = param => setDisplayFileUploadModal(param);\n\n return (\n <MediaContextProvider\n value={{\n changeSelectedFilter: value => setSelectedFilter(value),\n selectedFilter,\n selectedFiles,\n getSelectedFiles,\n filters: availableFilters,\n onClickPrompt: () => handleDisplayFileUploadModal(true)\n }}>\n <FilesListProvider>\n <Listing\n displayFileUploadModal={displayFileUploadModal}\n handleDisplayFileUploadModal={handleDisplayFileUploadModal}\n />\n </FilesListProvider>\n </MediaContextProvider>\n );\n};\n\nListingContainer.propTypes = {\n handleSelectedFiles: PropTypes.func,\n maxItems: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n filesSelected: PropTypes.arrayOf(PropTypes.string)\n};\n\nListingContainer.defaultProps = {\n handleSelectedFiles: () => {},\n maxItems: false,\n filesSelected: []\n};\n\nexport default ListingContainer;\n"],"file":"ListingContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/ListingContainer/ListingContainer.js"],"names":["React","useState","PropTypes","useQuery","getQuery","Listing","availableFilters","MediaContextProvider","FilesListProvider","existPrevious","ListingContainer","handleSelectedFiles","maxItems","filesSelected","displayFileUploadModal","setDisplayFileUploadModal","selectedFiles","setSelectedFiles","selectedFilter","setSelectedFilter","filter","isSearch","searchTerm","storeKey","fileStoresType","loading","data","getFileStores","fileStores","variables","visibleInAdmin","getSelectedFiles","id","existPreviousFile","length","allSelectedFiles","fileId","handleDisplayFileUploadModal","param","defaultFileStore","find","isDefault","key","changeSelectedFilter","value","filters","onClickPrompt","propTypes","func","oneOfType","number","bool","arrayOf","string","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport Listing from './Listing';\nimport { availableFilters } from '../../utils/available-filters/available-filters';\nimport { MediaContextProvider } from '../../utils/media-context';\nimport FilesListProvider from '../FileList/FilesListProvider';\nimport { existPrevious } from './mappers';\n\nconst ListingContainer = ({ handleSelectedFiles, maxItems, filesSelected }) => {\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState(filesSelected || []);\n const [selectedFilter, setSelectedFilter] = useState({\n filter: 'all',\n isSearch: false,\n searchTerm: null,\n storeKey: null\n });\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { loading, data: { getFileStores: fileStores = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n if (loading) return null;\n\n const getSelectedFiles = ({ id }) => {\n const existPreviousFile = existPrevious(selectedFiles, id);\n\n if (maxItems === selectedFiles.length && !existPreviousFile) {\n handleSelectedFiles([id], false);\n setSelectedFiles([id]);\n } else {\n const allSelectedFiles = existPreviousFile\n ? selectedFiles.filter(fileId => fileId !== existPreviousFile)\n : [...selectedFiles, id];\n\n handleSelectedFiles(allSelectedFiles, false);\n setSelectedFiles(allSelectedFiles);\n }\n };\n\n const handleDisplayFileUploadModal = param => setDisplayFileUploadModal(param);\n\n const defaultFileStore = (fileStores.find(({ isDefault }) => isDefault) || {}).key;\n\n return (\n <MediaContextProvider\n value={{\n fileStores,\n defaultFileStore,\n changeSelectedFilter: value => setSelectedFilter(value),\n selectedFilter: {\n ...selectedFilter,\n storeKey: selectedFilter.storeKey || defaultFileStore\n },\n selectedFiles,\n getSelectedFiles,\n filters: availableFilters,\n onClickPrompt: () => handleDisplayFileUploadModal(true)\n }}>\n <FilesListProvider>\n <Listing\n displayFileUploadModal={displayFileUploadModal}\n handleDisplayFileUploadModal={handleDisplayFileUploadModal}\n />\n </FilesListProvider>\n </MediaContextProvider>\n );\n};\n\nListingContainer.propTypes = {\n handleSelectedFiles: PropTypes.func,\n maxItems: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n filesSelected: PropTypes.arrayOf(PropTypes.string)\n};\n\nListingContainer.defaultProps = {\n handleSelectedFiles: () => {},\n maxItems: false,\n filesSelected: []\n};\n\nexport default ListingContainer;\n"],"file":"ListingContainer.js"}
@@ -19,7 +19,7 @@ const MEDIA_OVER_SCAN_COUNT = 0;
19
19
  const STORE_KEY = 'storeKey';
20
20
  const NAME = 'name';
21
21
  const ALL = 'all';
22
- const INVALID_STORE_KEY_VALUES = ['', 'Please Choose...'];
22
+ const INVALID_STORE_KEY_VALUES = [null, '', 'Please Choose...'];
23
23
  const PREVIEW = 'Preview';
24
24
  const REORDER = 'Reorder';
25
25
  const IMAGES = 'Images';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.js"],"names":["PLUGIN_NAME","ONE_FILE_AS_LIMIT","AVAILABLE_FILTER_TYPES","all","type","images","videos","documents","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","STORE_KEY","NAME","ALL","INVALID_STORE_KEY_VALUES","PREVIEW","REORDER","IMAGES","MORE"],"mappings":"AAAA,MAAMA,WAAW,GAAG,UAApB;AACA,MAAMC,iBAAiB,GAAG,CAA1B;AACA,MAAMC,sBAAsB,GAAG;AAC7BC,EAAAA,GAAG,EAAE;AACHC,IAAAA,IAAI,EAAE;AADH,GADwB;AAI7BC,EAAAA,MAAM,EAAE;AACND,IAAAA,IAAI,EAAE;AADA,GAJqB;AAO7BE,EAAAA,MAAM,EAAE;AACNF,IAAAA,IAAI,EAAE;AADA,GAPqB;AAU7BG,EAAAA,SAAS,EAAE;AACTH,IAAAA,IAAI,EAAE;AADG;AAVkB,CAA/B;AAeA,MAAMI,oBAAoB,GAAG,EAA7B;AACA,MAAMC,qBAAqB,GAAG,CAA9B;AAEA,MAAMC,SAAS,GAAG,UAAlB;AACA,MAAMC,IAAI,GAAG,MAAb;AAEA,MAAMC,GAAG,GAAG,KAAZ;AACA,MAAMC,wBAAwB,GAAG,CAAC,EAAD,EAAK,kBAAL,CAAjC;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,IAAI,GAAG,UAAb;AAEA,SACEL,GADF,EAEEV,sBAFF,EAGEc,MAHF,EAIEH,wBAJF,EAKEL,oBALF,EAMEC,qBANF,EAOEQ,IAPF,EAQEN,IARF,EASEV,iBATF,EAUED,WAVF,EAWEc,OAXF,EAYEC,OAZF,EAaEL,SAbF","sourcesContent":["const PLUGIN_NAME = 'media-ui';\nconst ONE_FILE_AS_LIMIT = 1;\nconst AVAILABLE_FILTER_TYPES = {\n all: {\n type: 'all'\n },\n images: {\n type: 'image'\n },\n videos: {\n type: 'video'\n },\n documents: {\n type: 'text'\n }\n};\n\nconst MEDIA_LIST_ITEM_SIZE = 97;\nconst MEDIA_OVER_SCAN_COUNT = 0;\n\nconst STORE_KEY = 'storeKey';\nconst NAME = 'name';\n\nconst ALL = 'all';\nconst INVALID_STORE_KEY_VALUES = ['', 'Please Choose...'];\nconst PREVIEW = 'Preview';\nconst REORDER = 'Reorder';\nconst IMAGES = 'Images';\nconst MORE = 'more ...';\n\nexport {\n ALL,\n AVAILABLE_FILTER_TYPES,\n IMAGES,\n INVALID_STORE_KEY_VALUES,\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n MORE,\n NAME,\n ONE_FILE_AS_LIMIT,\n PLUGIN_NAME,\n PREVIEW,\n REORDER,\n STORE_KEY\n};\n"],"file":"constants.js"}
1
+ {"version":3,"sources":["../src/constants.js"],"names":["PLUGIN_NAME","ONE_FILE_AS_LIMIT","AVAILABLE_FILTER_TYPES","all","type","images","videos","documents","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","STORE_KEY","NAME","ALL","INVALID_STORE_KEY_VALUES","PREVIEW","REORDER","IMAGES","MORE"],"mappings":"AAAA,MAAMA,WAAW,GAAG,UAApB;AACA,MAAMC,iBAAiB,GAAG,CAA1B;AACA,MAAMC,sBAAsB,GAAG;AAC7BC,EAAAA,GAAG,EAAE;AACHC,IAAAA,IAAI,EAAE;AADH,GADwB;AAI7BC,EAAAA,MAAM,EAAE;AACND,IAAAA,IAAI,EAAE;AADA,GAJqB;AAO7BE,EAAAA,MAAM,EAAE;AACNF,IAAAA,IAAI,EAAE;AADA,GAPqB;AAU7BG,EAAAA,SAAS,EAAE;AACTH,IAAAA,IAAI,EAAE;AADG;AAVkB,CAA/B;AAeA,MAAMI,oBAAoB,GAAG,EAA7B;AACA,MAAMC,qBAAqB,GAAG,CAA9B;AAEA,MAAMC,SAAS,GAAG,UAAlB;AACA,MAAMC,IAAI,GAAG,MAAb;AAEA,MAAMC,GAAG,GAAG,KAAZ;AACA,MAAMC,wBAAwB,GAAG,CAAC,IAAD,EAAO,EAAP,EAAW,kBAAX,CAAjC;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,IAAI,GAAG,UAAb;AAEA,SACEL,GADF,EAEEV,sBAFF,EAGEc,MAHF,EAIEH,wBAJF,EAKEL,oBALF,EAMEC,qBANF,EAOEQ,IAPF,EAQEN,IARF,EASEV,iBATF,EAUED,WAVF,EAWEc,OAXF,EAYEC,OAZF,EAaEL,SAbF","sourcesContent":["const PLUGIN_NAME = 'media-ui';\nconst ONE_FILE_AS_LIMIT = 1;\nconst AVAILABLE_FILTER_TYPES = {\n all: {\n type: 'all'\n },\n images: {\n type: 'image'\n },\n videos: {\n type: 'video'\n },\n documents: {\n type: 'text'\n }\n};\n\nconst MEDIA_LIST_ITEM_SIZE = 97;\nconst MEDIA_OVER_SCAN_COUNT = 0;\n\nconst STORE_KEY = 'storeKey';\nconst NAME = 'name';\n\nconst ALL = 'all';\nconst INVALID_STORE_KEY_VALUES = [null, '', 'Please Choose...'];\nconst PREVIEW = 'Preview';\nconst REORDER = 'Reorder';\nconst IMAGES = 'Images';\nconst MORE = 'more ...';\n\nexport {\n ALL,\n AVAILABLE_FILTER_TYPES,\n IMAGES,\n INVALID_STORE_KEY_VALUES,\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n MORE,\n NAME,\n ONE_FILE_AS_LIMIT,\n PLUGIN_NAME,\n PREVIEW,\n REORDER,\n STORE_KEY\n};\n"],"file":"constants.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-media-ui",
3
- "version": "0.121.0",
3
+ "version": "0.122.0-alpha.0",
4
4
  "description": "Blaze plugin media ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -57,5 +57,5 @@
57
57
  "lib/*",
58
58
  "lib-es/*"
59
59
  ],
60
- "gitHead": "eb95d177b2ca78edc57e88c7007b89e6dea19737"
60
+ "gitHead": "246146ffdb3f5e5bbdd70f2a6f9d383cab59b3af"
61
61
  }
@@ -1,23 +1,6 @@
1
1
  import { getQuery } from '@blaze-cms/admin-ui-utils';
2
2
  import { ALL, INVALID_STORE_KEY_VALUES } from '../../../constants';
3
3
 
4
- const getFromFiles = async ({ offset, limit, where, sort, client }) => {
5
- const _where = where.type === ALL ? {} : { ...where };
6
- if (INVALID_STORE_KEY_VALUES.includes(_where.storeKey)) delete _where.storeKey;
7
- const { data } = await client.query({
8
- query: getQuery('GET_FILES'),
9
- variables: {
10
- offset,
11
- limit,
12
- where: _where,
13
- sort
14
- },
15
- fetchPolicy: 'network-only'
16
- });
17
-
18
- return data;
19
- };
20
-
21
4
  const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
22
5
  const allTypesMatches = [
23
6
  {
@@ -35,7 +18,25 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
35
18
  match: { type: where.type }
36
19
  }
37
20
  ];
38
- const match = where.type === 'all' ? allTypesMatches : matchSpecificType;
21
+ const match = !where.type || where.type === ALL ? allTypesMatches : matchSpecificType;
22
+ const mustMatch = [];
23
+
24
+ if (searchTerm) {
25
+ mustMatch.push({
26
+ query_string: {
27
+ query: `${searchTerm}*`,
28
+ fields: [],
29
+ minimum_should_match: 2,
30
+ type: 'cross_fields'
31
+ }
32
+ });
33
+ }
34
+
35
+ if (where.storeKey && !INVALID_STORE_KEY_VALUES.includes(where.storeKey)) {
36
+ mustMatch.push({
37
+ match: { storeKey: where.storeKey }
38
+ });
39
+ }
39
40
 
40
41
  const {
41
42
  data: {
@@ -51,18 +52,12 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
51
52
  variables: {
52
53
  offset,
53
54
  limit,
55
+ sort: searchTerm ? null : 'updated:desc',
54
56
  rawQuery: {
55
57
  query: {
56
58
  bool: {
57
59
  must: [
58
- {
59
- query_string: {
60
- query: `${searchTerm}*`,
61
- fields: [],
62
- minimum_should_match: 2,
63
- type: 'cross_fields'
64
- }
65
- },
60
+ ...mustMatch,
66
61
  {
67
62
  bool: {
68
63
  should: match
@@ -76,14 +71,7 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
76
71
  query: {
77
72
  bool: {
78
73
  must: [
79
- {
80
- query_string: {
81
- query: `${searchTerm}*`,
82
- fields: [],
83
- minimum_should_match: 2,
84
- type: 'cross_fields'
85
- }
86
- },
74
+ ...mustMatch,
87
75
  {
88
76
  bool: {
89
77
  should: [
@@ -107,14 +95,7 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
107
95
  query: {
108
96
  bool: {
109
97
  must: [
110
- {
111
- query_string: {
112
- query: `${searchTerm}*`,
113
- fields: [],
114
- minimum_should_match: 2,
115
- type: 'cross_fields'
116
- }
117
- },
98
+ ...mustMatch,
118
99
  {
119
100
  bool: {
120
101
  should: [
@@ -132,14 +113,7 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
132
113
  query: {
133
114
  bool: {
134
115
  must: [
135
- {
136
- query_string: {
137
- query: `${searchTerm}*`,
138
- fields: [],
139
- minimum_should_match: 2,
140
- type: 'cross_fields'
141
- }
142
- },
116
+ ...mustMatch,
143
117
  {
144
118
  bool: {
145
119
  should: [
@@ -157,14 +131,7 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
157
131
  query: {
158
132
  bool: {
159
133
  must: [
160
- {
161
- query_string: {
162
- query: `${searchTerm}*`,
163
- fields: [],
164
- minimum_should_match: 2,
165
- type: 'cross_fields'
166
- }
167
- },
134
+ ...mustMatch,
168
135
  {
169
136
  bool: {
170
137
  should: [
@@ -184,9 +151,7 @@ const getFromSearch = async ({ searchTerm, offset, limit, where, client }) => {
184
151
  return { files, all, image, video, text };
185
152
  };
186
153
 
187
- const getFiles = ({ offset, limit, where, sort, searchTerm, isSearch }, client) =>
188
- !isSearch
189
- ? getFromFiles({ offset, limit, where, sort, client })
190
- : getFromSearch({ searchTerm, offset, limit, where, client });
154
+ const getFiles = ({ offset, limit, where, searchTerm }, client) =>
155
+ getFromSearch({ searchTerm, offset, limit, where, client });
191
156
 
192
157
  export default getFiles;
@@ -28,11 +28,13 @@ function useGetFiles() {
28
28
  useEffect(
29
29
  () => {
30
30
  const { offset, limit, where, sort, searchTerm, isSearch } = queryParams;
31
- const isNewFilterSet = where && where.type !== previousFilter;
31
+ const newFilter = JSON.stringify(where);
32
+ const isNewFilterSet = newFilter !== previousFilter;
32
33
  const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
33
34
  const isNewSearchTermSet = searchTerm && previousSearchTerm !== searchTerm;
34
35
  const isResetSearch = searchTerm === null && !isSearch && previousFilter;
35
- const shouldRequest = isNewOffsetSet || isNewFilterSet || isNewSearchTermSet || isResetSearch;
36
+ const shouldRequest =
37
+ where && (isNewOffsetSet || isNewFilterSet || isNewSearchTermSet || isResetSearch);
36
38
  async function fetchData() {
37
39
  if (data.files.length) {
38
40
  setData({ files: [] });
@@ -42,7 +44,6 @@ function useGetFiles() {
42
44
  { offset, limit, where, sort, searchTerm, isSearch },
43
45
  client
44
46
  );
45
-
46
47
  setData({ files, total, all, image, video, text });
47
48
  }
48
49
 
@@ -51,7 +52,7 @@ function useGetFiles() {
51
52
  fetchData().then(() => {
52
53
  setIsLoading(false);
53
54
  });
54
- setPreviousFilter(where.type);
55
+ setPreviousFilter(newFilter);
55
56
  setPreviousOffset(offset);
56
57
  setPreviousSearchTerm(searchTerm);
57
58
  }