@blaze-cms/plugin-media-ui 0.147.0-rc-eagle.2 → 0.147.0-rc-eagle.6

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 (86) hide show
  1. package/lib/components/CardMedia/CardMedia.js +94 -51
  2. package/lib/components/CardMedia/CardMedia.js.map +1 -1
  3. package/lib/components/EditMediaFile/EditMediaFile.js +24 -40
  4. package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
  5. package/lib/components/EditMediaFile/EditMediaFilePage.js +14 -7
  6. package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  7. package/lib/components/FileList/useGetFiles/getFiles.js +6 -3
  8. package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
  9. package/lib/components/FileList/useGetFiles/useGetFiles.js +7 -2
  10. package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
  11. package/lib/components/FileList/useGetFilesList/useGetFilesList.js +4 -1
  12. package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  13. package/lib/components/FilePreview/Image/imageSchema.js +8 -4
  14. package/lib/components/FilePreview/Image/imageSchema.js.map +1 -1
  15. package/lib/components/FilePreview/PDF/schema.js +2 -1
  16. package/lib/components/FilePreview/PDF/schema.js.map +1 -1
  17. package/lib/components/FilePreview/index.js +47 -3
  18. package/lib/components/FilePreview/index.js.map +1 -1
  19. package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
  20. package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
  21. package/lib/components/FileUploadAdapter/FileUploadAdapter.js +33 -22
  22. package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
  23. package/lib/components/FileUploadModal/FileUploadModal.js +80 -17
  24. package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
  25. package/lib/components/FilterPanel/FilterPanel.js +43 -125
  26. package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
  27. package/lib/components/FilterPanel/MediaSearchFilter.js +41 -0
  28. package/lib/components/FilterPanel/MediaSearchFilter.js.map +1 -0
  29. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +7 -4
  30. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  31. package/lib/components/ListingContainer/ListingContainer.js +4 -1
  32. package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
  33. package/lib/constants.js +3 -2
  34. package/lib/constants.js.map +1 -1
  35. package/lib-es/components/CardMedia/CardMedia.js +96 -53
  36. package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
  37. package/lib-es/components/EditMediaFile/EditMediaFile.js +26 -42
  38. package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
  39. package/lib-es/components/EditMediaFile/EditMediaFilePage.js +15 -8
  40. package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  41. package/lib-es/components/FileList/useGetFiles/getFiles.js +6 -3
  42. package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
  43. package/lib-es/components/FileList/useGetFiles/useGetFiles.js +7 -2
  44. package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
  45. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +4 -1
  46. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  47. package/lib-es/components/FilePreview/Image/imageSchema.js +8 -4
  48. package/lib-es/components/FilePreview/Image/imageSchema.js.map +1 -1
  49. package/lib-es/components/FilePreview/PDF/schema.js +2 -1
  50. package/lib-es/components/FilePreview/PDF/schema.js.map +1 -1
  51. package/lib-es/components/FilePreview/index.js +47 -3
  52. package/lib-es/components/FilePreview/index.js.map +1 -1
  53. package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
  54. package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
  55. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +34 -23
  56. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
  57. package/lib-es/components/FileUploadModal/FileUploadModal.js +81 -18
  58. package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
  59. package/lib-es/components/FilterPanel/FilterPanel.js +43 -123
  60. package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
  61. package/lib-es/components/FilterPanel/MediaSearchFilter.js +34 -0
  62. package/lib-es/components/FilterPanel/MediaSearchFilter.js.map +1 -0
  63. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +7 -4
  64. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  65. package/lib-es/components/ListingContainer/ListingContainer.js +4 -1
  66. package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -1
  67. package/lib-es/constants.js +3 -2
  68. package/lib-es/constants.js.map +1 -1
  69. package/package.json +10 -9
  70. package/src/components/CardMedia/CardMedia.js +119 -89
  71. package/src/components/EditMediaFile/EditMediaFile.js +21 -24
  72. package/src/components/EditMediaFile/EditMediaFilePage.js +12 -7
  73. package/src/components/FileList/useGetFiles/getFiles.js +12 -4
  74. package/src/components/FileList/useGetFiles/useGetFiles.js +3 -4
  75. package/src/components/FileList/useGetFilesList/useGetFilesList.js +2 -1
  76. package/src/components/FilePreview/Image/imageSchema.js +8 -4
  77. package/src/components/FilePreview/PDF/schema.js +2 -1
  78. package/src/components/FilePreview/index.js +36 -2
  79. package/src/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
  80. package/src/components/FileUploadAdapter/FileUploadAdapter.js +24 -14
  81. package/src/components/FileUploadModal/FileUploadModal.js +71 -6
  82. package/src/components/FilterPanel/FilterPanel.js +44 -129
  83. package/src/components/FilterPanel/MediaSearchFilter.js +32 -0
  84. package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +7 -2
  85. package/src/components/ListingContainer/ListingContainer.js +4 -1
  86. package/src/constants.js +16 -2
@@ -1,9 +1,8 @@
1
1
  import React, { useState, useContext, useEffect } from 'react';
2
2
  import FileUpload from '@blaze-react/file-upload';
3
3
  import PropTypes from 'prop-types';
4
- import { useApolloClient } from '@apollo/client';
4
+ import { useApolloClient, useQuery } from '@apollo/client';
5
5
  import { getQuery, getMutation, ModalAdapter as Modal } from '@blaze-cms/admin-ui-utils';
6
- import { parseFormValues } from '@blaze-cms/react-form-builder';
7
6
  import { useToasts } from '@blaze-react/toaster';
8
7
  import Tooltip from '@blaze-react/tooltip';
9
8
  import { MORE } from '../../constants';
@@ -49,6 +48,13 @@ const FileUploadAdapter = ({
49
48
  const client = useApolloClient();
50
49
  const { addToast } = useToasts();
51
50
 
51
+ const { data: { getEntitySchemas: [schemaData] = [] } = {} } = useQuery(
52
+ getQuery('GET_ENTITY_SCHEMA'),
53
+ {
54
+ variables: { identifier: 'file' }
55
+ }
56
+ );
57
+
52
58
  const getFiles = async (offset, ids, fetchAll = previewAllFiles) => {
53
59
  const {
54
60
  data: { files: newFiles }
@@ -175,18 +181,22 @@ const FileUploadAdapter = ({
175
181
  };
176
182
 
177
183
  const handleEditFileForm = editedFile => {
178
- const values = parseFormValues(editedFile.valuesChecked);
184
+ const dataValues = editedFile.valuesChecked.reduce(
185
+ (acc, { id: formValueId, value: formValue, isDataPropery }) => {
186
+ if (isDataPropery) {
187
+ acc.data[formValueId] = formValue;
188
+ } else {
189
+ acc[formValueId] = formValue;
190
+ }
191
+ return acc;
192
+ },
193
+ { id: editFile.id, data: { ...editFile.data } }
194
+ );
195
+ delete dataValues.data.__typename; // Remove __typename if it exists in data to avoid issues with Apollo cache.
179
196
 
180
- const { altText, caption, credits, hrefUrl, name } = values;
181
197
  setEditFile({
182
198
  ...editFile,
183
- name,
184
- data: {
185
- altText,
186
- caption,
187
- credits,
188
- hrefUrl
189
- }
199
+ formData: dataValues
190
200
  });
191
201
  };
192
202
 
@@ -221,7 +231,7 @@ const FileUploadAdapter = ({
221
231
  {
222
232
  textButton: 'Apply',
223
233
  callback: async () => {
224
- const { name, id: editedFileId, data } = editFile;
234
+ const { name, id: editedFileId, data, formData } = editFile;
225
235
  const updatedSelectedFiles = selectedFiles.map(selectedFile => {
226
236
  if (selectedFile.id === editedFileId) {
227
237
  return { ...selectedFile, name, data };
@@ -235,8 +245,7 @@ const FileUploadAdapter = ({
235
245
  mutation: getMutation('UPDATE_FILE'),
236
246
  variables: {
237
247
  input: {
238
- name,
239
- data,
248
+ ...formData,
240
249
  id: editedFileId
241
250
  }
242
251
  },
@@ -324,6 +333,7 @@ const FileUploadAdapter = ({
324
333
  displayForm
325
334
  previewType="card"
326
335
  disableFilePreview={disableFilePreview}
336
+ schemaData={schemaData}
327
337
  />
328
338
  </Modal>
329
339
  )}
@@ -1,6 +1,7 @@
1
- import React, { useState } from 'react';
1
+ import React, { useState, useMemo } from 'react';
2
2
  import { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';
3
3
  import FileUpload from '@blaze-react/file-upload';
4
+ import { getFormBuilderLookup } from '@blaze-cms/react-form-builder';
4
5
  import PropTypes from 'prop-types';
5
6
  import { useToasts } from '@blaze-react/toaster';
6
7
  import { useApolloClient, useQuery } from '@apollo/client';
@@ -20,10 +21,57 @@ const FileUploadModal = ({
20
21
  const client = useApolloClient();
21
22
  const { addNewFile } = useFileList();
22
23
 
24
+ const { data: { getEntitySchemas: [schemaData] = [] } = {}, loading: schemaLoading } = useQuery(
25
+ getQuery('GET_ENTITY_SCHEMA'),
26
+ {
27
+ variables: { identifier: 'file' }
28
+ }
29
+ );
30
+
31
+ const customFields = useMemo(() => {
32
+ if (schemaData && schemaData.properties) {
33
+ const { name: _name, storeKey: _storeKey, ...restProperties } = schemaData.properties;
34
+ return Object.entries(restProperties)
35
+ .filter(([, field]) => field && field.showInForm === true)
36
+ .map(([key, field]) => {
37
+ const Component = getFormBuilderLookup.getFormField(field.formFieldType);
38
+ return {
39
+ name: key,
40
+ label: field.label || key,
41
+ component: props => (
42
+ <Component
43
+ {...field}
44
+ {...props}
45
+ onChange={(...args) => {
46
+ const [event] = args;
47
+ if (!event.value) {
48
+ event.value = event.event.target ? event.event.target.value : event.value;
49
+ }
50
+ if (event.event.target && !event.event.target.id) {
51
+ event.event.target.id = props.id || key;
52
+ }
53
+ if (event.event.target) {
54
+ event.event.target.name = key;
55
+ }
56
+ return props.onChange(...args);
57
+ }}
58
+ />
59
+ )
60
+ };
61
+ });
62
+ }
63
+ return [];
64
+ }, [schemaData]);
65
+
23
66
  const fileStoresType = getQuery('GET_FILE_STORES');
24
- const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {
25
- variables: { visibleInAdmin: true }
26
- });
67
+ const { data: { getFileStores: storeType = [] } = {}, loading: storeLoading } = useQuery(
68
+ fileStoresType,
69
+ {
70
+ variables: { visibleInAdmin: true }
71
+ }
72
+ );
73
+
74
+ if (schemaLoading || storeLoading) return null;
27
75
 
28
76
  const handleFiles = filesToUpload => {
29
77
  if (fileId && filesToUpload && filesToUpload.length) {
@@ -37,12 +85,28 @@ const FileUploadModal = ({
37
85
  const filesToProcess = fileId && files.length ? [files[0]] : files;
38
86
 
39
87
  const response = await Promise.all(
40
- filesToProcess.map(({ file, name, data, storeKey: fileStoreKey }) => {
88
+ filesToProcess.map(fileData => {
89
+ const { file, name, data: dataProperties = {}, storeKey: fileStoreKey } = fileData;
90
+ const customProperties = customFields.map(
91
+ ({ name: customPropertyName }) => customPropertyName
92
+ );
93
+ const otherProperties = Object.entries(dataProperties).reduce(
94
+ (acc, [key, value]) => {
95
+ if (customProperties.includes(key)) {
96
+ acc.fileProperties[key] = value;
97
+ } else {
98
+ acc.data[key] = value;
99
+ }
100
+ return acc;
101
+ },
102
+ { data: {}, fileProperties: {} }
103
+ );
41
104
  const payload = {
42
105
  name,
43
106
  storeKey: fileStoreKey || selectedStoreKey || storeKey,
44
- data
107
+ ...otherProperties
45
108
  };
109
+
46
110
  if (fileId) {
47
111
  payload.id = fileId;
48
112
  } else if (!name) {
@@ -129,6 +193,7 @@ const FileUploadModal = ({
129
193
  storeKey={selectedStoreKey || storeKey}
130
194
  onChange={handleFiles}
131
195
  selectOptions={storeOptions}
196
+ customFields={customFields}
132
197
  />
133
198
  </Modal>
134
199
  );
@@ -1,138 +1,53 @@
1
- /* eslint-disable jsx-a11y/no-static-element-interactions */
2
- /* eslint-disable jsx-a11y/anchor-is-valid */
3
- import React, { useState, useEffect } from 'react';
4
- import { SearchBar } from '@blaze-cms/plugin-search-ui';
5
- import classnames from 'classnames';
6
- import Select from '@blaze-react/select';
1
+ import React from 'react';
2
+ import MediaSearchFilter from './MediaSearchFilter';
7
3
  import { useMediaContext, MediaContext } from '../../utils/media-context';
8
- import useFileList from '../FileList/useFileList';
9
4
 
10
5
  const FilterPanel = () => {
11
- const [searchTerm, setSearchTerm] = useState('');
12
- const { filters, selectedFilter, changeSelectedFilter, fileStores } =
13
- useMediaContext(MediaContext);
14
- const { queryParams, data } = useFileList();
15
- const [active, setActive] = useState(filters[0].id);
16
-
17
- useEffect(() => {
18
- if (queryParams.searchTerm === null) {
19
- setSearchTerm('');
20
- }
21
- }, [queryParams.searchTerm]);
22
-
23
- const handleSearchTerm = ({ target: { value } }) => {
24
- setSearchTerm(value);
25
- };
26
-
27
- const storeKey = selectedFilter.storeKey || '';
28
-
29
- const onChangeFilter = id => {
30
- setActive(id);
31
- searchTerm
32
- ? changeSelectedFilter({
33
- filter: id,
34
- isSearch: true,
35
- searchTerm,
36
- storeKey
37
- })
38
- : changeSelectedFilter({
39
- filter: id,
40
- isSearch: false,
41
- searchTerm: null,
42
- storeKey
43
- });
6
+ const { filters, selectedFilter, changeSelectedFilter } = useMediaContext(MediaContext);
7
+
8
+ const handleOnSelectFilter = (esFilters = []) => {
9
+ let nextSearchTerm = null;
10
+ let nextFilterId = selectedFilter.filter;
11
+ let nextStoreKey = selectedFilter.storeKey || '';
12
+
13
+ esFilters.forEach(filterObj => {
14
+ const { simple_query_string: simpleQueryString, match } = filterObj || {};
15
+
16
+ if (simpleQueryString) {
17
+ const { query } = simpleQueryString;
18
+ if (query != null) {
19
+ nextSearchTerm = String(query).trim();
20
+ }
21
+ }
22
+
23
+ if (match) {
24
+ const { 'type.keyword': typeKeyword, 'storeKey.keyword': storeKeyKeyword } = match;
25
+
26
+ if (typeKeyword && typeKeyword.query != null) {
27
+ nextFilterId = typeKeyword.query;
28
+ }
29
+
30
+ if (storeKeyKeyword && storeKeyKeyword.query != null) {
31
+ nextStoreKey = storeKeyKeyword.query;
32
+ }
33
+ }
34
+ });
35
+
36
+ changeSelectedFilter({
37
+ filter: nextFilterId,
38
+ isSearch: Boolean(nextSearchTerm),
39
+ searchTerm: nextSearchTerm || null,
40
+ storeKey: nextStoreKey,
41
+ esFilters
42
+ });
44
43
  };
45
44
 
46
- const handleKeyDown = ({ key }) => {
47
- if (key === 'Enter') {
48
- searchTerm
49
- ? changeSelectedFilter({
50
- filter: selectedFilter.filter,
51
- isSearch: true,
52
- searchTerm: searchTerm.trim(),
53
- storeKey
54
- })
55
- : changeSelectedFilter({
56
- filter: selectedFilter.filter,
57
- isSearch: false,
58
- searchTerm: null,
59
- storeKey
60
- });
61
- }
62
- };
63
-
64
- const onSelectFilter = ({ value }) => {
65
- searchTerm
66
- ? changeSelectedFilter({
67
- filter: selectedFilter.filter,
68
- isSearch: true,
69
- searchTerm: searchTerm.trim(),
70
- storeKey: value
71
- })
72
- : changeSelectedFilter({
73
- filter: selectedFilter.filter,
74
- isSearch: false,
75
- searchTerm: null,
76
- storeKey: value
77
- });
78
- };
79
-
80
- const activeSegements = filters.reduce((acc, { id }, index) => {
81
- acc[`active-${index}`] = active === id;
82
- return acc;
83
- }, {});
84
- const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);
85
- const storeOptions = (fileStores || []).map(type => [type.key, type.name]);
86
-
87
45
  return (
88
- <div className="filter-panel">
89
- <div className="filter-panel__wrapper">
90
- <ul className="filter-panel__list">
91
- {filters.map(({ label, id }) =>
92
- selectedFilter.filter !== id ? (
93
- <li key={label} className="filter-panel__list-item">
94
- <a onClick={() => onChangeFilter(id)}>
95
- {label} ({data[id]})
96
- </a>
97
- </li>
98
- ) : (
99
- <li key={label} className="filter-panel__list-item active">
100
- {label} ({data[id]})
101
- </li>
102
- )
103
- )}
104
- </ul>
105
- <div className="filter-panel__barWrapper">
106
- <div className={activeBarSegment} />
107
- </div>
108
- </div>
109
- <div className="filter-panel__searchBarWrapper">
110
- <div className="select__wrapper">
111
- <Select
112
- name="filter"
113
- defaultTextValue="Any"
114
- options={storeOptions}
115
- onChange={onSelectFilter}
116
- selected={selectedFilter.storeKey}
117
- />
118
- </div>
119
- <SearchBar
120
- search={() =>
121
- changeSelectedFilter({
122
- filter: selectedFilter.filter,
123
- isSearch: true,
124
- searchTerm,
125
- storeKey: selectedFilter.storeKey
126
- })
127
- }
128
- handleKeyDown={handleKeyDown}
129
- searchTerm={searchTerm}
130
- handleSearchTerm={handleSearchTerm}
131
- placeholder="Search term here..."
132
- close={false}
133
- />
134
- </div>
135
- </div>
46
+ <MediaSearchFilter
47
+ selectedFilter={selectedFilter}
48
+ listFilters={filters}
49
+ updateListingFilters={handleOnSelectFilter}
50
+ />
136
51
  );
137
52
  };
138
53
 
@@ -0,0 +1,32 @@
1
+ import { useQuery } from '@apollo/client';
2
+ import React from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { getQuery } from '@blaze-cms/admin-ui-utils';
5
+ import { SearchFilter } from '@blaze-cms/plugin-data-ui';
6
+
7
+ const MediaSearchFilter = ({ selectedFilter, listFilters, updateListingFilters }) => {
8
+ const { data } = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
9
+ variables: { identifier: 'file' }
10
+ });
11
+
12
+ const getEntitySchemas = data?.getEntitySchemas ?? [];
13
+
14
+ if (!getEntitySchemas.length) return null;
15
+
16
+ return (
17
+ <SearchFilter
18
+ schema={getEntitySchemas[0]}
19
+ listFilters={listFilters}
20
+ setListFilters={updateListingFilters}
21
+ values={selectedFilter.defaultFilters}
22
+ />
23
+ );
24
+ };
25
+
26
+ MediaSearchFilter.propTypes = {
27
+ selectedFilter: PropTypes.object.isRequired,
28
+ updateListingFilters: PropTypes.func.isRequired,
29
+ listFilters: PropTypes.array.isRequired
30
+ };
31
+
32
+ export default MediaSearchFilter;
@@ -34,6 +34,8 @@ const MediaFileList = ({
34
34
 
35
35
  useEffect(() => {
36
36
  if (!loading && !hasFiles) setDisplayCardPrompt(true);
37
+ if (!loading) setDisplayCardPrompt(false);
38
+ if (hasFiles) setDisplayCardPrompt(false);
37
39
  }, [loading, hasFiles, setDisplayCardPrompt]);
38
40
 
39
41
  useEffect(
@@ -41,6 +43,7 @@ const MediaFileList = ({
41
43
  setVerifiedRanges([]);
42
44
  setCurrentListIndex(0);
43
45
  setQueryParams({
46
+ ...selectedFilter,
44
47
  where: {
45
48
  ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],
46
49
  storeKey: selectedFilter.storeKey
@@ -54,7 +57,8 @@ const MediaFileList = ({
54
57
  selectedFilter.filter,
55
58
  selectedFilter.storeKey,
56
59
  selectedFilter.isSearch,
57
- selectedFilter.searchTerm
60
+ selectedFilter.searchTerm,
61
+ selectedFilter.esFilters
58
62
  ]
59
63
  );
60
64
 
@@ -70,7 +74,8 @@ const MediaFileList = ({
70
74
  storeKey: selectedFilter.storeKey
71
75
  },
72
76
  isSearch: selectedFilter.isSearch,
73
- searchTerm: selectedFilter.searchTerm
77
+ searchTerm: selectedFilter.searchTerm,
78
+ esFilters: selectedFilter.esFilters
74
79
  });
75
80
  setVerifiedRanges([...verifiedRanges, loadIndex]);
76
81
  setCurrentListIndex(startIndex + MEDIA_OVER_SCAN_COUNT);
@@ -67,7 +67,10 @@ const ListingContainer = ({
67
67
  changeSelectedFilter: value => setSelectedFilter(value),
68
68
  selectedFilter: {
69
69
  ...selectedFilter,
70
- storeKey: selectedFilter.storeKey || defaultFileStore
70
+ storeKey: selectedFilter.storeKey || defaultFileStore,
71
+ defaultFilters: {
72
+ storeKey: selectedFilter.storeKey || defaultFileStore
73
+ }
71
74
  },
72
75
  selectedFiles,
73
76
  getSelectedFiles,
package/src/constants.js CHANGED
@@ -16,7 +16,7 @@ const AVAILABLE_FILTER_TYPES = {
16
16
  };
17
17
 
18
18
  const MEDIA_LIST_ITEM_SIZE = 97;
19
- const MEDIA_OVER_SCAN_COUNT = 0;
19
+ const MEDIA_OVER_SCAN_COUNT = 3;
20
20
 
21
21
  const ICON_SIZE = {
22
22
  WIDTH: '25px',
@@ -38,6 +38,19 @@ const REORDER = 'Reorder';
38
38
  const IMAGES = 'Images';
39
39
  const MORE = 'more ...';
40
40
 
41
+ const FILE_DEFAULT_PROPS = [
42
+ 'id',
43
+ 'location',
44
+ 'mimetype',
45
+ 'url',
46
+ 'data',
47
+ 'name',
48
+ 'storeKey',
49
+ 'filename',
50
+ 'type',
51
+ 'updated'
52
+ ];
53
+
41
54
  export {
42
55
  ALL,
43
56
  AVAILABLE_FILTER_TYPES,
@@ -53,5 +66,6 @@ export {
53
66
  REORDER,
54
67
  STORE_KEY,
55
68
  ICON_SIZE,
56
- ICON_COLOR
69
+ ICON_COLOR,
70
+ FILE_DEFAULT_PROPS
57
71
  };