@blaze-cms/plugin-media-ui 0.146.0-translations.8 → 0.147.0-rc-eagle.2

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 (214) hide show
  1. package/lib/components/CardMedia/CardMedia.js +160 -223
  2. package/lib/components/CardMedia/CardMedia.js.map +1 -1
  3. package/lib/components/CardMedia/index.js +2 -3
  4. package/lib/components/CardMedia/index.js.map +1 -1
  5. package/lib/components/EditMediaFile/EditMediaFile.js +153 -164
  6. package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
  7. package/lib/components/EditMediaFile/EditMediaFilePage.js +79 -96
  8. package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  9. package/lib/components/EditMediaFile/index.js +2 -3
  10. package/lib/components/EditMediaFile/index.js.map +1 -1
  11. package/lib/components/EditorAdapter/EditorAdapter.js +43 -22
  12. package/lib/components/EditorAdapter/EditorAdapter.js.map +1 -1
  13. package/lib/components/EditorAdapter/index.js +2 -3
  14. package/lib/components/EditorAdapter/index.js.map +1 -1
  15. package/lib/components/FileList/FilesListContext/index.js +3 -4
  16. package/lib/components/FileList/FilesListContext/index.js.map +1 -1
  17. package/lib/components/FileList/FilesListProvider/index.js +27 -29
  18. package/lib/components/FileList/FilesListProvider/index.js.map +1 -1
  19. package/lib/components/FileList/useFileList/index.js +3 -6
  20. package/lib/components/FileList/useFileList/index.js.map +1 -1
  21. package/lib/components/FileList/useGetFiles/getFiles.js +164 -184
  22. package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
  23. package/lib/components/FileList/useGetFiles/index.js +2 -3
  24. package/lib/components/FileList/useGetFiles/index.js.map +1 -1
  25. package/lib/components/FileList/useGetFiles/useGetFiles.js +88 -132
  26. package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
  27. package/lib/components/FileList/useGetFilesList/getCounters.js +10 -30
  28. package/lib/components/FileList/useGetFilesList/getCounters.js.map +1 -1
  29. package/lib/components/FileList/useGetFilesList/index.js +2 -3
  30. package/lib/components/FileList/useGetFilesList/index.js.map +1 -1
  31. package/lib/components/FileList/useGetFilesList/useGetFilesList.js +89 -109
  32. package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  33. package/lib/components/FilePreview/Actions/index.js +24 -38
  34. package/lib/components/FilePreview/Actions/index.js.map +1 -1
  35. package/lib/components/FilePreview/Image/Image.js +31 -33
  36. package/lib/components/FilePreview/Image/Image.js.map +1 -1
  37. package/lib/components/FilePreview/Image/RawImage.js +25 -27
  38. package/lib/components/FilePreview/Image/RawImage.js.map +1 -1
  39. package/lib/components/FilePreview/Image/imageSchema.js +1 -2
  40. package/lib/components/FilePreview/Image/imageSchema.js.map +1 -1
  41. package/lib/components/FilePreview/Image/index.js +1 -2
  42. package/lib/components/FilePreview/Image/index.js.map +1 -1
  43. package/lib/components/FilePreview/ModalContext.js +1 -2
  44. package/lib/components/FilePreview/ModalContext.js.map +1 -1
  45. package/lib/components/FilePreview/PDF/PDF.js +44 -31
  46. package/lib/components/FilePreview/PDF/PDF.js.map +1 -1
  47. package/lib/components/FilePreview/PDF/RawPDF.js +27 -29
  48. package/lib/components/FilePreview/PDF/RawPDF.js.map +1 -1
  49. package/lib/components/FilePreview/PDF/index.js +1 -2
  50. package/lib/components/FilePreview/PDF/index.js.map +1 -1
  51. package/lib/components/FilePreview/PDF/schema.js +1 -2
  52. package/lib/components/FilePreview/PDF/schema.js.map +1 -1
  53. package/lib/components/FilePreview/get-preview.js +12 -10
  54. package/lib/components/FilePreview/get-preview.js.map +1 -1
  55. package/lib/components/FilePreview/index.js +59 -62
  56. package/lib/components/FilePreview/index.js.map +1 -1
  57. package/lib/components/FilePreview/previewDefault/PreviewDefault.js +35 -23
  58. package/lib/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
  59. package/lib/components/FilePreview/previewDefault/RawPreviewDefault.js +33 -35
  60. package/lib/components/FilePreview/previewDefault/RawPreviewDefault.js.map +1 -1
  61. package/lib/components/FilePreview/previewDefault/icons/DefaultIcon.js +120 -123
  62. package/lib/components/FilePreview/previewDefault/icons/DefaultIcon.js.map +1 -1
  63. package/lib/components/FilePreview/previewDefault/icons/index.js +2 -3
  64. package/lib/components/FilePreview/previewDefault/icons/index.js.map +1 -1
  65. package/lib/components/FilePreview/previewDefault/index.js +1 -2
  66. package/lib/components/FilePreview/previewDefault/index.js.map +1 -1
  67. package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js +1 -2
  68. package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
  69. package/lib/components/FilePreviewReadOnly/FileList.js +10 -12
  70. package/lib/components/FilePreviewReadOnly/FileList.js.map +1 -1
  71. package/lib/components/FilePreviewReadOnly/FilePreviewList.js +14 -19
  72. package/lib/components/FilePreviewReadOnly/FilePreviewList.js.map +1 -1
  73. package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js +52 -98
  74. package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
  75. package/lib/components/FilePreviewReadOnly/index.js +2 -3
  76. package/lib/components/FilePreviewReadOnly/index.js.map +1 -1
  77. package/lib/components/FilePreviewReadOnly/mappers/format-initial-value.js +7 -8
  78. package/lib/components/FilePreviewReadOnly/mappers/format-initial-value.js.map +1 -1
  79. package/lib/components/FilePreviewReadOnly/mappers/index.js +1 -2
  80. package/lib/components/FilePreviewReadOnly/mappers/index.js.map +1 -1
  81. package/lib/components/FileUploadAdapter/FileList.js +26 -39
  82. package/lib/components/FileUploadAdapter/FileList.js.map +1 -1
  83. package/lib/components/FileUploadAdapter/FilePreviewList.js +14 -19
  84. package/lib/components/FileUploadAdapter/FilePreviewList.js.map +1 -1
  85. package/lib/components/FileUploadAdapter/FileReorderList.js +18 -21
  86. package/lib/components/FileUploadAdapter/FileReorderList.js.map +1 -1
  87. package/lib/components/FileUploadAdapter/FileReorderListItem.js +20 -23
  88. package/lib/components/FileUploadAdapter/FileReorderListItem.js.map +1 -1
  89. package/lib/components/FileUploadAdapter/FileUploadAdapter.js +219 -342
  90. package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
  91. package/lib/components/FileUploadAdapter/index.js +2 -3
  92. package/lib/components/FileUploadAdapter/index.js.map +1 -1
  93. package/lib/components/FileUploadAdapter/mappers/format-initial-value.js +7 -8
  94. package/lib/components/FileUploadAdapter/mappers/format-initial-value.js.map +1 -1
  95. package/lib/components/FileUploadAdapter/mappers/get-button-text.js +9 -10
  96. package/lib/components/FileUploadAdapter/mappers/get-button-text.js.map +1 -1
  97. package/lib/components/FileUploadAdapter/mappers/get-format.js +7 -13
  98. package/lib/components/FileUploadAdapter/mappers/get-format.js.map +1 -1
  99. package/lib/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js +2 -2
  100. package/lib/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js.map +1 -1
  101. package/lib/components/FileUploadAdapter/mappers/index.js +6 -7
  102. package/lib/components/FileUploadAdapter/mappers/index.js.map +1 -1
  103. package/lib/components/FileUploadAdapter/mappers/is-unselecting.js +2 -10
  104. package/lib/components/FileUploadAdapter/mappers/is-unselecting.js.map +1 -1
  105. package/lib/components/FileUploadAdapter/mappers/transform-to-array.js +2 -5
  106. package/lib/components/FileUploadAdapter/mappers/transform-to-array.js.map +1 -1
  107. package/lib/components/FileUploadAdapter/useLimit.js +4 -10
  108. package/lib/components/FileUploadAdapter/useLimit.js.map +1 -1
  109. package/lib/components/FileUploadModal/FileUploadModal.js +142 -169
  110. package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
  111. package/lib/components/FileUploadModal/index.js +2 -3
  112. package/lib/components/FileUploadModal/index.js.map +1 -1
  113. package/lib/components/FilterPanel/FilterPanel.js +68 -88
  114. package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
  115. package/lib/components/FilterPanel/index.js +2 -3
  116. package/lib/components/FilterPanel/index.js.map +1 -1
  117. package/lib/components/ListingContainer/Listing/Listing.js +55 -57
  118. package/lib/components/ListingContainer/Listing/Listing.js.map +1 -1
  119. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +71 -92
  120. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  121. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js +2 -3
  122. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js.map +1 -1
  123. package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js +14 -26
  124. package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js.map +1 -1
  125. package/lib/components/ListingContainer/Listing/MediaListing/index.js +2 -3
  126. package/lib/components/ListingContainer/Listing/MediaListing/index.js.map +1 -1
  127. package/lib/components/ListingContainer/Listing/index.js +2 -3
  128. package/lib/components/ListingContainer/Listing/index.js.map +1 -1
  129. package/lib/components/ListingContainer/ListingContainer.js +62 -94
  130. package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
  131. package/lib/components/ListingContainer/index.js +2 -3
  132. package/lib/components/ListingContainer/index.js.map +1 -1
  133. package/lib/components/ListingContainer/mappers/exist-previous.js +3 -10
  134. package/lib/components/ListingContainer/mappers/exist-previous.js.map +1 -1
  135. package/lib/components/ListingContainer/mappers/index.js +2 -3
  136. package/lib/components/ListingContainer/mappers/index.js.map +1 -1
  137. package/lib/components/MediaListing.js +14 -26
  138. package/lib/components/MediaListing.js.map +1 -1
  139. package/lib/constants.js +15 -16
  140. package/lib/constants.js.map +1 -1
  141. package/lib/icons/MediaLibraryIcon.js +17 -20
  142. package/lib/icons/MediaLibraryIcon.js.map +1 -1
  143. package/lib/icons/index.js +2 -3
  144. package/lib/icons/index.js.map +1 -1
  145. package/lib/index.js +67 -92
  146. package/lib/index.js.map +1 -1
  147. package/lib/utils/available-filters/available-filters.js +1 -2
  148. package/lib/utils/available-filters/available-filters.js.map +1 -1
  149. package/lib/utils/bustUrl.js +13 -0
  150. package/lib/utils/bustUrl.js.map +1 -0
  151. package/lib/utils/media-context/index.js +4 -5
  152. package/lib/utils/media-context/index.js.map +1 -1
  153. package/lib/utils/media-context/media-context.js +3 -4
  154. package/lib/utils/media-context/media-context.js.map +1 -1
  155. package/lib/utils/media-context/useMediaContext.js +2 -4
  156. package/lib/utils/media-context/useMediaContext.js.map +1 -1
  157. package/lib-es/components/CardMedia/CardMedia.js +7 -3
  158. package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
  159. package/lib-es/components/EditMediaFile/EditMediaFile.js +74 -39
  160. package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
  161. package/lib-es/components/EditMediaFile/EditMediaFilePage.js +35 -13
  162. package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  163. package/lib-es/components/EditorAdapter/EditorAdapter.js +26 -6
  164. package/lib-es/components/EditorAdapter/EditorAdapter.js.map +1 -1
  165. package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
  166. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
  167. package/lib-es/components/FilePreview/Actions/index.js +2 -2
  168. package/lib-es/components/FilePreview/Actions/index.js.map +1 -1
  169. package/lib-es/components/FilePreview/PDF/PDF.js +19 -4
  170. package/lib-es/components/FilePreview/PDF/PDF.js.map +1 -1
  171. package/lib-es/components/FilePreview/index.js +10 -3
  172. package/lib-es/components/FilePreview/index.js.map +1 -1
  173. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js +18 -4
  174. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
  175. package/lib-es/components/FilePreviewReadOnly/FileList.js +2 -2
  176. package/lib-es/components/FilePreviewReadOnly/FileList.js.map +1 -1
  177. package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js +14 -12
  178. package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
  179. package/lib-es/components/FileUploadAdapter/FileList.js.map +1 -1
  180. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +8 -2
  181. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
  182. package/lib-es/components/FileUploadAdapter/mappers/get-button-text.js.map +1 -1
  183. package/lib-es/components/FileUploadAdapter/useLimit.js.map +1 -1
  184. package/lib-es/components/FileUploadModal/FileUploadModal.js +51 -9
  185. package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
  186. package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
  187. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +6 -2
  188. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  189. package/lib-es/index.js +20 -4
  190. package/lib-es/index.js.map +1 -1
  191. package/lib-es/utils/bustUrl.js +7 -0
  192. package/lib-es/utils/bustUrl.js.map +1 -0
  193. package/package.json +25 -17
  194. package/src/components/CardMedia/CardMedia.js +6 -7
  195. package/src/components/EditMediaFile/EditMediaFile.js +75 -46
  196. package/src/components/EditMediaFile/EditMediaFilePage.js +33 -13
  197. package/src/components/EditorAdapter/EditorAdapter.js +31 -4
  198. package/src/components/FileList/useGetFilesList/useGetFilesList.js +15 -14
  199. package/src/components/FilePreview/Actions/index.js +25 -27
  200. package/src/components/FilePreview/PDF/PDF.js +17 -4
  201. package/src/components/FilePreview/index.js +9 -3
  202. package/src/components/FilePreview/previewDefault/PreviewDefault.js +16 -3
  203. package/src/components/FilePreviewReadOnly/FileList.js +1 -3
  204. package/src/components/FilePreviewReadOnly/FilePreviewReadOnly.js +17 -29
  205. package/src/components/FileUploadAdapter/FileUploadAdapter.js +52 -55
  206. package/src/components/FileUploadAdapter/useLimit.js +5 -8
  207. package/src/components/FileUploadModal/FileUploadModal.js +57 -38
  208. package/src/components/FilterPanel/FilterPanel.js +18 -23
  209. package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +22 -34
  210. package/src/index.js +17 -10
  211. package/src/utils/bustUrl.js +6 -0
  212. package/CHANGELOG.md +0 -1243
  213. package/babel.config.js +0 -3
  214. package/jest.config.js +0 -5
@@ -5,6 +5,7 @@ import { useApolloClient } from '@apollo/client';
5
5
  import { getQuery, getMutation, ModalAdapter as Modal } from '@blaze-cms/admin-ui-utils';
6
6
  import { parseFormValues } from '@blaze-cms/react-form-builder';
7
7
  import { useToasts } from '@blaze-react/toaster';
8
+ import Tooltip from '@blaze-react/tooltip';
8
9
  import { MORE } from '../../constants';
9
10
  import ListingContainer from '../ListingContainer';
10
11
  import { MediaContextProvider } from '../../utils/media-context';
@@ -30,6 +31,7 @@ const FileUploadAdapter = ({
30
31
  shouldRenderInPreview,
31
32
  canDragAndDrop,
32
33
  simpleLayout,
34
+ tooltip,
33
35
  previewAllFiles,
34
36
  disableFilePreview,
35
37
  fileType,
@@ -238,12 +240,7 @@ const FileUploadAdapter = ({
238
240
  id: editedFileId
239
241
  }
240
242
  },
241
- update(
242
- cache,
243
- {
244
- data: { updateFile: fileUpdated }
245
- }
246
- ) {
243
+ update(cache, { data: { updateFile: fileUpdated } }) {
247
244
  cache.writeQuery({
248
245
  query: getQuery('GET_FILE_BY_ID'),
249
246
  variables: { id },
@@ -280,30 +277,30 @@ const FileUploadAdapter = ({
280
277
  return (
281
278
  <>
282
279
  <div className="form-field form-field--button">
283
- <label>{label}</label>
280
+ <label>
281
+ {label} <Tooltip tooltipContent={tooltip} />
282
+ </label>
284
283
  {selectedFiles && (
285
- <>
286
- <MediaContextProvider value={{ handleEditModal, onUnselectFile: handleSelectedFiles }}>
287
- {shouldRenderInPreview ? (
288
- <InjectPreview selector={FileUploadAdapter.previewerId}>
289
- <FileList
290
- selectedFiles={selectedFiles}
291
- allFiles={currentValue}
292
- handleReorderFiles={handleReorderFiles}
293
- canDragAndDrop={canDragAndDrop}
294
- fetchMore={fetchMore}>
295
- {fileListSpan}
296
- </FileList>
297
- </InjectPreview>
298
- ) : (
284
+ <MediaContextProvider value={{ handleEditModal, onUnselectFile: handleSelectedFiles }}>
285
+ {shouldRenderInPreview ? (
286
+ <InjectPreview selector={FileUploadAdapter.previewerId}>
299
287
  <FileList
300
288
  selectedFiles={selectedFiles}
289
+ allFiles={currentValue}
301
290
  handleReorderFiles={handleReorderFiles}
302
- fetchMore={fetchMore}
303
- />
304
- )}
305
- </MediaContextProvider>
306
- </>
291
+ canDragAndDrop={canDragAndDrop}
292
+ fetchMore={fetchMore}>
293
+ {fileListSpan}
294
+ </FileList>
295
+ </InjectPreview>
296
+ ) : (
297
+ <FileList
298
+ selectedFiles={selectedFiles}
299
+ handleReorderFiles={handleReorderFiles}
300
+ fetchMore={fetchMore}
301
+ />
302
+ )}
303
+ </MediaContextProvider>
307
304
  )}
308
305
  <FileUpload
309
306
  actionText={fileUploadButtonText}
@@ -331,44 +328,42 @@ const FileUploadAdapter = ({
331
328
  </Modal>
332
329
  )}
333
330
 
334
- {displayFileUploadModal &&
335
- simpleLayout && (
336
- <div className="file-upload-modal-wrapper">
331
+ {displayFileUploadModal && simpleLayout && (
332
+ <div className="file-upload-modal-wrapper">
333
+ <ListingContainer
334
+ displayFileUploadModal={displayFileUploadModal}
335
+ closeModalAndSetValue={closeModalAndSetValue}
336
+ setDisplayFileUploadModal={setDisplayFileUploadModal}
337
+ handleSelectedFiles={handleSelectedFiles}
338
+ maxItems={currentLimit}
339
+ simpleLayout={simpleLayout}
340
+ filesSelected={currentValue.length > 1 ? currentValue : []}
341
+ openEditInModal
342
+ storeKey={storeKey}
343
+ />
344
+ </div>
345
+ )}
346
+
347
+ {displayModal && !simpleLayout && (
348
+ <div className="file-upload-modal-wrapper">
349
+ <Modal
350
+ actions={modalActions}
351
+ className="file-upload-modal"
352
+ title="Media library"
353
+ onClose={() => closeModalAndSetValue()}>
337
354
  <ListingContainer
338
- displayFileUploadModal={displayFileUploadModal}
339
355
  closeModalAndSetValue={closeModalAndSetValue}
356
+ displayFileUploadModal={displayFileUploadModal}
340
357
  setDisplayFileUploadModal={setDisplayFileUploadModal}
341
358
  handleSelectedFiles={handleSelectedFiles}
342
359
  maxItems={currentLimit}
343
- simpleLayout={simpleLayout}
344
360
  filesSelected={currentValue.length > 1 ? currentValue : []}
345
361
  openEditInModal
346
362
  storeKey={storeKey}
347
363
  />
348
- </div>
349
- )}
350
-
351
- {displayModal &&
352
- !simpleLayout && (
353
- <div className="file-upload-modal-wrapper">
354
- <Modal
355
- actions={modalActions}
356
- className="file-upload-modal"
357
- title="Media library"
358
- onClose={() => closeModalAndSetValue()}>
359
- <ListingContainer
360
- closeModalAndSetValue={closeModalAndSetValue}
361
- displayFileUploadModal={displayFileUploadModal}
362
- setDisplayFileUploadModal={setDisplayFileUploadModal}
363
- handleSelectedFiles={handleSelectedFiles}
364
- maxItems={currentLimit}
365
- filesSelected={currentValue.length > 1 ? currentValue : []}
366
- openEditInModal
367
- storeKey={storeKey}
368
- />
369
- </Modal>
370
- </div>
371
- )}
364
+ </Modal>
365
+ </div>
366
+ )}
372
367
  </>
373
368
  );
374
369
  };
@@ -384,6 +379,7 @@ FileUploadAdapter.propTypes = {
384
379
  canDragAndDrop: PropTypes.bool,
385
380
  simpleLayout: PropTypes.bool,
386
381
  previewAllFiles: PropTypes.bool,
382
+ tooltip: PropTypes.string,
387
383
  fileType: PropTypes.string,
388
384
  disableFilePreview: PropTypes.bool,
389
385
  storeKey: PropTypes.string
@@ -396,6 +392,7 @@ FileUploadAdapter.defaultProps = {
396
392
  canDragAndDrop: false,
397
393
  simpleLayout: false,
398
394
  previewAllFiles: false,
395
+ tooltip: '',
399
396
  fileType: 'file',
400
397
  disableFilePreview: true,
401
398
  storeKey: null
@@ -3,14 +3,11 @@ import { ONE_FILE_AS_LIMIT } from '../../constants';
3
3
 
4
4
  function useLimit(initialLimit) {
5
5
  const [currentLimit, setCurrentLimit] = useState(initialLimit);
6
- useEffect(
7
- () => {
8
- if (initialLimit && currentLimit !== ONE_FILE_AS_LIMIT) {
9
- setCurrentLimit(ONE_FILE_AS_LIMIT);
10
- }
11
- },
12
- [currentLimit, initialLimit]
13
- );
6
+ useEffect(() => {
7
+ if (initialLimit && currentLimit !== ONE_FILE_AS_LIMIT) {
8
+ setCurrentLimit(ONE_FILE_AS_LIMIT);
9
+ }
10
+ }, [currentLimit, initialLimit]);
14
11
 
15
12
  return [currentLimit, setCurrentLimit];
16
13
  }
@@ -21,21 +21,26 @@ const FileUploadModal = ({
21
21
  const { addNewFile } = useFileList();
22
22
 
23
23
  const fileStoresType = getQuery('GET_FILE_STORES');
24
-
25
24
  const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {
26
25
  variables: { visibleInAdmin: true }
27
26
  });
28
27
 
29
28
  const handleFiles = filesToUpload => {
29
+ if (fileId && filesToUpload && filesToUpload.length) {
30
+ setFiles([filesToUpload[0]]);
31
+ return;
32
+ }
30
33
  setFiles(filesToUpload);
31
34
  };
32
35
 
33
36
  const uploadFiles = async () => {
37
+ const filesToProcess = fileId && files.length ? [files[0]] : files;
38
+
34
39
  const response = await Promise.all(
35
- files.map(({ file, name, data, storeKey: fileStoreKey }) => {
40
+ filesToProcess.map(({ file, name, data, storeKey: fileStoreKey }) => {
36
41
  const payload = {
37
42
  name,
38
- storeKey: fileStoreKey,
43
+ storeKey: fileStoreKey || selectedStoreKey || storeKey,
39
44
  data
40
45
  };
41
46
  if (fileId) {
@@ -45,12 +50,7 @@ const FileUploadModal = ({
45
50
  }
46
51
  return client.mutate({
47
52
  mutation: getMutation('UPLOAD_FILE'),
48
- variables: {
49
- input: {
50
- file,
51
- ...payload
52
- }
53
- }
53
+ variables: { input: { file, ...payload } }
54
54
  });
55
55
  })
56
56
  ).catch(error => {
@@ -58,21 +58,42 @@ const FileUploadModal = ({
58
58
  appearance: 'error',
59
59
  autoDismiss: true
60
60
  });
61
+ return [];
61
62
  });
62
63
 
63
- const parsedResponse = response.map(({ data: { file } }) => file.result);
64
+ const parsedResponse = response.map(({ data: { file } }) => {
65
+ const { message, ...rest } = file.result || {};
66
+ return rest;
67
+ });
64
68
 
65
69
  const fileNames = files.map(({ file }) => file.name);
66
- addNewFile && addNewFile(parsedResponse);
67
- const toastMessage = `Uploaded: ${fileNames.join(', ')}`;
68
70
 
69
71
  if (simpleLayout) {
70
- const filesToSelect = parsedResponse.map(file => file.id);
72
+ if (fileId && parsedResponse && parsedResponse.length) {
73
+ const { message, ...updatedFile } = parsedResponse[0];
74
+ try {
75
+ client.writeQuery({
76
+ query: getQuery('GET_FILE_BY_ID'),
77
+ variables: { id: fileId },
78
+ data: { file: updatedFile }
79
+ });
80
+ } catch (e) {
81
+ console.error(e); //eslint-disable-line
82
+ }
83
+ const updateMessage = `Updated: ${updatedFile.filename || fileNames[0]}`;
84
+ closeModalAndSetValue(simpleLayout, updatedFile, updateMessage);
85
+ return;
86
+ }
87
+ const filesToSelect = parsedResponse.map(({ id }) => id);
88
+ const uploadMessage = `Uploaded: ${fileNames.join(', ')}`;
71
89
  getSelectedFiles(null, filesToSelect);
72
- closeModalAndSetValue(simpleLayout, filesToSelect, toastMessage);
90
+ closeModalAndSetValue(simpleLayout, filesToSelect, uploadMessage);
73
91
  return;
74
92
  }
75
93
 
94
+ addNewFile && addNewFile(parsedResponse);
95
+ const toastMessage = fileId ? `Updated: ${fileNames[0]}` : `Uploaded: ${fileNames.join(', ')}`;
96
+
76
97
  addToast(toastMessage, {
77
98
  appearance: 'success',
78
99
  autoDismiss: true
@@ -88,30 +109,28 @@ const FileUploadModal = ({
88
109
  storeOptions = storeKey ? storeOptions.filter(([key]) => key === storeKey) : storeOptions;
89
110
 
90
111
  return (
91
- <>
92
- <Modal
93
- onClose={onClose}
94
- title="Add media"
95
- actions={[
96
- {
97
- textButton: 'Cancel',
98
- callback: onClose,
99
- modifiers: ['cancel']
100
- },
101
- {
102
- textButton: 'Upload',
103
- callback: handleOnSave,
104
- modifiers: []
105
- }
106
- ]}
107
- upload>
108
- <FileUpload
109
- storeKey={selectedStoreKey || storeKey}
110
- onChange={handleFiles}
111
- selectOptions={storeOptions}
112
- />
113
- </Modal>
114
- </>
112
+ <Modal
113
+ onClose={onClose}
114
+ title="Add media"
115
+ actions={[
116
+ {
117
+ textButton: 'Cancel',
118
+ callback: onClose,
119
+ modifiers: ['cancel']
120
+ },
121
+ {
122
+ textButton: 'Upload',
123
+ callback: handleOnSave,
124
+ modifiers: []
125
+ }
126
+ ]}
127
+ upload>
128
+ <FileUpload
129
+ storeKey={selectedStoreKey || storeKey}
130
+ onChange={handleFiles}
131
+ selectOptions={storeOptions}
132
+ />
133
+ </Modal>
115
134
  );
116
135
  };
117
136
 
@@ -9,20 +9,16 @@ import useFileList from '../FileList/useFileList';
9
9
 
10
10
  const FilterPanel = () => {
11
11
  const [searchTerm, setSearchTerm] = useState('');
12
- const { filters, selectedFilter, changeSelectedFilter, fileStores } = useMediaContext(
13
- MediaContext
14
- );
12
+ const { filters, selectedFilter, changeSelectedFilter, fileStores } =
13
+ useMediaContext(MediaContext);
15
14
  const { queryParams, data } = useFileList();
16
15
  const [active, setActive] = useState(filters[0].id);
17
16
 
18
- useEffect(
19
- () => {
20
- if (queryParams.searchTerm === null) {
21
- setSearchTerm('');
22
- }
23
- },
24
- [queryParams.searchTerm]
25
- );
17
+ useEffect(() => {
18
+ if (queryParams.searchTerm === null) {
19
+ setSearchTerm('');
20
+ }
21
+ }, [queryParams.searchTerm]);
26
22
 
27
23
  const handleSearchTerm = ({ target: { value } }) => {
28
24
  setSearchTerm(value);
@@ -92,19 +88,18 @@ const FilterPanel = () => {
92
88
  <div className="filter-panel">
93
89
  <div className="filter-panel__wrapper">
94
90
  <ul className="filter-panel__list">
95
- {filters.map(
96
- ({ label, id }) =>
97
- selectedFilter.filter !== id ? (
98
- <li key={label} className="filter-panel__list-item">
99
- <a onClick={() => onChangeFilter(id)}>
100
- {label} ({data[id]})
101
- </a>
102
- </li>
103
- ) : (
104
- <li key={label} className="filter-panel__list-item active">
91
+ {filters.map(({ label, id }) =>
92
+ selectedFilter.filter !== id ? (
93
+ <li key={label} className="filter-panel__list-item">
94
+ <a onClick={() => onChangeFilter(id)}>
105
95
  {label} ({data[id]})
106
- </li>
107
- )
96
+ </a>
97
+ </li>
98
+ ) : (
99
+ <li key={label} className="filter-panel__list-item active">
100
+ {label} ({data[id]})
101
+ </li>
102
+ )
108
103
  )}
109
104
  </ul>
110
105
  <div className="filter-panel__barWrapper">
@@ -24,28 +24,17 @@ const MediaFileList = ({
24
24
  const [currentListIndex, setCurrentListIndex] = useState(1);
25
25
  const [verifiedRanges, setVerifiedRanges] = useState([]);
26
26
  const [listHeight, setListHeight] = useState(null);
27
- const {
28
- queryParams,
29
- data,
30
- loading,
31
- setQueryParams,
32
- clearList,
33
- removeFile,
34
- updateFile
35
- } = useFileList();
27
+ const { queryParams, data, loading, setQueryParams, clearList, removeFile, updateFile } =
28
+ useFileList();
36
29
 
37
- const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } = useMediaContext(
38
- MediaContext
39
- );
30
+ const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } =
31
+ useMediaContext(MediaContext);
40
32
 
41
33
  const hasFiles = !!data.files && !!data.files.length;
42
34
 
43
- useEffect(
44
- () => {
45
- if (!loading && !hasFiles) setDisplayCardPrompt(true);
46
- },
47
- [loading, hasFiles, setDisplayCardPrompt]
48
- );
35
+ useEffect(() => {
36
+ if (!loading && !hasFiles) setDisplayCardPrompt(true);
37
+ }, [loading, hasFiles, setDisplayCardPrompt]);
49
38
 
50
39
  useEffect(
51
40
  () => {
@@ -88,22 +77,19 @@ const MediaFileList = ({
88
77
  }
89
78
  };
90
79
 
91
- useEffect(
92
- () => {
93
- const handleListHeight = () => {
94
- setListHeight(wrapperRef.current.clientHeight - 40);
95
- };
80
+ useEffect(() => {
81
+ const handleListHeight = () => {
82
+ setListHeight(wrapperRef.current.clientHeight - 40);
83
+ };
96
84
 
97
- if (wrapperRef.current) {
98
- handleListHeight();
99
- window.addEventListener('resize', handleListHeight);
100
- }
101
- return () => {
102
- window.removeEventListener('resize', handleListHeight);
103
- };
104
- },
105
- [listHeight, wrapperRef]
106
- );
85
+ if (wrapperRef.current) {
86
+ handleListHeight();
87
+ window.addEventListener('resize', handleListHeight);
88
+ }
89
+ return () => {
90
+ window.removeEventListener('resize', handleListHeight);
91
+ };
92
+ }, [listHeight, wrapperRef]);
107
93
 
108
94
  const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;
109
95
 
@@ -123,7 +109,7 @@ const MediaFileList = ({
123
109
  scrollToIndex={currentListIndex}
124
110
  onItemsRendered={handleRenderedItems}
125
111
  renderItem={({ index, style }) => {
126
- const { name, url, mimetype, id } = data.files[index];
112
+ const { name, url, mimetype, id, data: fileData, updated } = data.files[index];
127
113
  const isSelected = existPrevious(selectedFiles, id);
128
114
  return (
129
115
  <div key={index} style={style} className="list__item--resultWrapper">
@@ -143,6 +129,8 @@ const MediaFileList = ({
143
129
  index={index}
144
130
  removeFile={removeFile}
145
131
  openEditInModal={openEditInModal}
132
+ data={fileData}
133
+ updated={updated}
146
134
  />
147
135
  </div>
148
136
  );
package/src/index.js CHANGED
@@ -1,21 +1,28 @@
1
- import React from 'react';
2
1
  import FileUploadAdapter from './components/FileUploadAdapter';
3
2
  import EditorAdapter from './components/EditorAdapter';
4
3
  import { MediaLibraryIcon } from './icons';
5
4
  import pkg from '../package.json';
6
5
  import { PLUGIN_NAME } from './constants';
6
+ import FilePreviewReadOnly from './components/FilePreviewReadOnly';
7
+ import MediaListing from './components/MediaListing';
8
+ import EditMediaFilePage from './components/EditMediaFile/EditMediaFilePage';
7
9
 
8
- export const FilePreviewReadOnly = React.lazy(() =>
9
- import(/* webpackChunkName: 'MediaFilePreviewReadOnly' */ './components/FilePreviewReadOnly')
10
- );
10
+ // todo: renable lazy loading after bundler optimisations, currently they are too slow in dev mode
11
+ // export const FilePreviewReadOnly = React.lazy(
12
+ // () =>
13
+ // import(/* webpackChunkName: 'MediaFilePreviewReadOnly' */ './components/FilePreviewReadOnly')
14
+ // );
11
15
 
12
- const MediaListing = React.lazy(() =>
13
- import(/* webpackChunkName: 'MediaListingContainer' */ './components/MediaListing')
14
- );
16
+ // const MediaListing = React.lazy(
17
+ // () => import(/* webpackChunkName: 'MediaListingContainer' */ './components/MediaListing')
18
+ // );
15
19
 
16
- const EditMediaFilePage = React.lazy(() =>
17
- import(/* webpackChunkName: 'EditMediaFilePage' */ './components/EditMediaFile/EditMediaFilePage')
18
- );
20
+ // const EditMediaFilePage = React.lazy(
21
+ // () =>
22
+ // import(
23
+ // /* webpackChunkName: 'EditMediaFilePage' */ './components/EditMediaFile/EditMediaFilePage'
24
+ // )
25
+ // );
19
26
  export default async function load(app) {
20
27
  app.events.once('admin:menu:config:load', ({ addConfig }) => {
21
28
  addConfig({
@@ -0,0 +1,6 @@
1
+ export default function bustUrl(url, updated) {
2
+ if (!url) return url;
3
+ const separator = url.includes('?') ? '&' : '?';
4
+ const version = updated || Date.now();
5
+ return `${url}${separator}v=${version}`;
6
+ }