@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.
- package/CHANGELOG.md +11 -0
- package/lib/components/FileList/useGetFiles/getFiles.js +58 -144
- package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib/components/FileList/useGetFiles/useGetFiles.js +4 -3
- package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js +22 -23
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib/components/FilterPanel/FilterPanel.js +5 -19
- package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib/components/ListingContainer/ListingContainer.js +54 -6
- package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib/constants.js +1 -1
- package/lib/constants.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/getFiles.js +30 -82
- package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js +4 -3
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +20 -21
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib-es/components/FilterPanel/FilterPanel.js +5 -15
- package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib-es/components/ListingContainer/ListingContainer.js +30 -2
- package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib-es/constants.js +1 -1
- package/lib-es/constants.js.map +1 -1
- package/package.json +2 -2
- package/src/components/FileList/useGetFiles/getFiles.js +27 -62
- package/src/components/FileList/useGetFiles/useGetFiles.js +5 -4
- package/src/components/FileList/useGetFilesList/useGetFilesList.js +16 -24
- package/src/components/FilterPanel/FilterPanel.js +9 -11
- package/src/components/ListingContainer/ListingContainer.js +18 -2
- 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(
|
|
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 (
|
|
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
|
-
}, [
|
|
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
|
|
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
|
|
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(
|
|
166
|
+
setCurrentFilter(newFilter);
|
|
171
167
|
};
|
|
172
168
|
|
|
173
169
|
const parsedQueryParams = _objectSpread(_objectSpread({}, queryParams), {}, {
|
|
174
|
-
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 = (
|
|
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","
|
|
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,
|
|
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"}
|
package/lib-es/constants.js
CHANGED
|
@@ -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';
|
package/lib-es/constants.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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": "
|
|
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 ===
|
|
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,
|
|
188
|
-
|
|
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
|
|
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 =
|
|
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(
|
|
55
|
+
setPreviousFilter(newFilter);
|
|
55
56
|
setPreviousOffset(offset);
|
|
56
57
|
setPreviousSearchTerm(searchTerm);
|
|
57
58
|
}
|