@blaze-cms/plugin-media-ui 0.146.0-node18-core-styles-tooltips.45 → 0.146.0-node18-tooltips.38

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 (164) hide show
  1. package/CHANGELOG.md +21 -66
  2. package/lib/components/EditMediaFile/EditMediaFile.js +2 -2
  3. package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
  4. package/lib/components/EditorAdapter/EditorAdapter.js +12 -1
  5. package/lib/components/EditorAdapter/EditorAdapter.js.map +1 -1
  6. package/lib-es/components/CardMedia/CardMedia.js +233 -0
  7. package/lib-es/components/CardMedia/CardMedia.js.map +1 -0
  8. package/lib-es/components/CardMedia/index.js +3 -0
  9. package/lib-es/components/CardMedia/index.js.map +1 -0
  10. package/lib-es/components/EditMediaFile/EditMediaFile.js +187 -0
  11. package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -0
  12. package/lib-es/components/EditMediaFile/EditMediaFilePage.js +109 -0
  13. package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -0
  14. package/lib-es/components/EditMediaFile/index.js +3 -0
  15. package/lib-es/components/EditMediaFile/index.js.map +1 -0
  16. package/lib-es/components/EditorAdapter/EditorAdapter.js +59 -0
  17. package/lib-es/components/EditorAdapter/EditorAdapter.js.map +1 -0
  18. package/lib-es/components/EditorAdapter/index.js +3 -0
  19. package/lib-es/components/EditorAdapter/index.js.map +1 -0
  20. package/lib-es/components/FileList/FilesListContext/index.js +4 -0
  21. package/lib-es/components/FileList/FilesListContext/index.js.map +1 -0
  22. package/lib-es/components/FileList/FilesListProvider/index.js +36 -0
  23. package/lib-es/components/FileList/FilesListProvider/index.js.map +1 -0
  24. package/lib-es/components/FileList/useFileList/index.js +5 -0
  25. package/lib-es/components/FileList/useFileList/index.js.map +1 -0
  26. package/lib-es/components/FileList/useGetFiles/getFiles.js +179 -0
  27. package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -0
  28. package/lib-es/components/FileList/useGetFiles/index.js +3 -0
  29. package/lib-es/components/FileList/useGetFiles/index.js.map +1 -0
  30. package/lib-es/components/FileList/useGetFiles/useGetFiles.js +114 -0
  31. package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -0
  32. package/lib-es/components/FileList/useGetFilesList/getCounters.js +11 -0
  33. package/lib-es/components/FileList/useGetFilesList/getCounters.js.map +1 -0
  34. package/lib-es/components/FileList/useGetFilesList/index.js +3 -0
  35. package/lib-es/components/FileList/useGetFilesList/index.js.map +1 -0
  36. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +172 -0
  37. package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -0
  38. package/lib-es/components/FilePreview/Actions/index.js +38 -0
  39. package/lib-es/components/FilePreview/Actions/index.js.map +1 -0
  40. package/lib-es/components/FilePreview/Image/Image.js +40 -0
  41. package/lib-es/components/FilePreview/Image/Image.js.map +1 -0
  42. package/lib-es/components/FilePreview/Image/RawImage.js +31 -0
  43. package/lib-es/components/FilePreview/Image/RawImage.js.map +1 -0
  44. package/lib-es/components/FilePreview/Image/imageSchema.js +53 -0
  45. package/lib-es/components/FilePreview/Image/imageSchema.js.map +1 -0
  46. package/lib-es/components/FilePreview/Image/index.js +12 -0
  47. package/lib-es/components/FilePreview/Image/index.js.map +1 -0
  48. package/lib-es/components/FilePreview/ModalContext.js +3 -0
  49. package/lib-es/components/FilePreview/ModalContext.js.map +1 -0
  50. package/lib-es/components/FilePreview/PDF/PDF.js +49 -0
  51. package/lib-es/components/FilePreview/PDF/PDF.js.map +1 -0
  52. package/lib-es/components/FilePreview/PDF/RawPDF.js +33 -0
  53. package/lib-es/components/FilePreview/PDF/RawPDF.js.map +1 -0
  54. package/lib-es/components/FilePreview/PDF/index.js +12 -0
  55. package/lib-es/components/FilePreview/PDF/index.js.map +1 -0
  56. package/lib-es/components/FilePreview/PDF/schema.js +21 -0
  57. package/lib-es/components/FilePreview/PDF/schema.js.map +1 -0
  58. package/lib-es/components/FilePreview/get-preview.js +28 -0
  59. package/lib-es/components/FilePreview/get-preview.js.map +1 -0
  60. package/lib-es/components/FilePreview/index.js +104 -0
  61. package/lib-es/components/FilePreview/index.js.map +1 -0
  62. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js +41 -0
  63. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -0
  64. package/lib-es/components/FilePreview/previewDefault/RawPreviewDefault.js +39 -0
  65. package/lib-es/components/FilePreview/previewDefault/RawPreviewDefault.js.map +1 -0
  66. package/lib-es/components/FilePreview/previewDefault/icons/DefaultIcon.js +121 -0
  67. package/lib-es/components/FilePreview/previewDefault/icons/DefaultIcon.js.map +1 -0
  68. package/lib-es/components/FilePreview/previewDefault/icons/index.js +3 -0
  69. package/lib-es/components/FilePreview/previewDefault/icons/index.js.map +1 -0
  70. package/lib-es/components/FilePreview/previewDefault/index.js +12 -0
  71. package/lib-es/components/FilePreview/previewDefault/index.js.map +1 -0
  72. package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js +25 -0
  73. package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -0
  74. package/lib-es/components/FilePreviewReadOnly/FileList.js +18 -0
  75. package/lib-es/components/FilePreviewReadOnly/FileList.js.map +1 -0
  76. package/lib-es/components/FilePreviewReadOnly/FilePreviewList.js +22 -0
  77. package/lib-es/components/FilePreviewReadOnly/FilePreviewList.js.map +1 -0
  78. package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js +68 -0
  79. package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -0
  80. package/lib-es/components/FilePreviewReadOnly/index.js +3 -0
  81. package/lib-es/components/FilePreviewReadOnly/index.js.map +1 -0
  82. package/lib-es/components/FilePreviewReadOnly/mappers/format-initial-value.js +11 -0
  83. package/lib-es/components/FilePreviewReadOnly/mappers/format-initial-value.js.map +1 -0
  84. package/lib-es/components/FilePreviewReadOnly/mappers/index.js +3 -0
  85. package/lib-es/components/FilePreviewReadOnly/mappers/index.js.map +1 -0
  86. package/lib-es/components/FileUploadAdapter/FileList.js +52 -0
  87. package/lib-es/components/FileUploadAdapter/FileList.js.map +1 -0
  88. package/lib-es/components/FileUploadAdapter/FilePreviewList.js +22 -0
  89. package/lib-es/components/FileUploadAdapter/FilePreviewList.js.map +1 -0
  90. package/lib-es/components/FileUploadAdapter/FileReorderList.js +32 -0
  91. package/lib-es/components/FileUploadAdapter/FileReorderList.js.map +1 -0
  92. package/lib-es/components/FileUploadAdapter/FileReorderListItem.js +24 -0
  93. package/lib-es/components/FileUploadAdapter/FileReorderListItem.js.map +1 -0
  94. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +391 -0
  95. package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -0
  96. package/lib-es/components/FileUploadAdapter/index.js +3 -0
  97. package/lib-es/components/FileUploadAdapter/index.js.map +1 -0
  98. package/lib-es/components/FileUploadAdapter/mappers/format-initial-value.js +11 -0
  99. package/lib-es/components/FileUploadAdapter/mappers/format-initial-value.js.map +1 -0
  100. package/lib-es/components/FileUploadAdapter/mappers/get-button-text.js +11 -0
  101. package/lib-es/components/FileUploadAdapter/mappers/get-button-text.js.map +1 -0
  102. package/lib-es/components/FileUploadAdapter/mappers/get-format.js +12 -0
  103. package/lib-es/components/FileUploadAdapter/mappers/get-format.js.map +1 -0
  104. package/lib-es/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js +7 -0
  105. package/lib-es/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js.map +1 -0
  106. package/lib-es/components/FileUploadAdapter/mappers/index.js +8 -0
  107. package/lib-es/components/FileUploadAdapter/mappers/index.js.map +1 -0
  108. package/lib-es/components/FileUploadAdapter/mappers/is-unselecting.js +2 -0
  109. package/lib-es/components/FileUploadAdapter/mappers/is-unselecting.js.map +1 -0
  110. package/lib-es/components/FileUploadAdapter/mappers/transform-to-array.js +2 -0
  111. package/lib-es/components/FileUploadAdapter/mappers/transform-to-array.js.map +1 -0
  112. package/lib-es/components/FileUploadAdapter/useLimit.js +13 -0
  113. package/lib-es/components/FileUploadAdapter/useLimit.js.map +1 -0
  114. package/lib-es/components/FileUploadModal/FileUploadModal.js +178 -0
  115. package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -0
  116. package/lib-es/components/FileUploadModal/index.js +3 -0
  117. package/lib-es/components/FileUploadModal/index.js.map +1 -0
  118. package/lib-es/components/FilterPanel/FilterPanel.js +135 -0
  119. package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -0
  120. package/lib-es/components/FilterPanel/index.js +3 -0
  121. package/lib-es/components/FilterPanel/index.js.map +1 -0
  122. package/lib-es/components/ListingContainer/Listing/Listing.js +70 -0
  123. package/lib-es/components/ListingContainer/Listing/Listing.js.map +1 -0
  124. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +153 -0
  125. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -0
  126. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js +3 -0
  127. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js.map +1 -0
  128. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaListing.js +33 -0
  129. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaListing.js.map +1 -0
  130. package/lib-es/components/ListingContainer/Listing/MediaListing/index.js +3 -0
  131. package/lib-es/components/ListingContainer/Listing/MediaListing/index.js.map +1 -0
  132. package/lib-es/components/ListingContainer/Listing/index.js +3 -0
  133. package/lib-es/components/ListingContainer/Listing/index.js.map +1 -0
  134. package/lib-es/components/ListingContainer/ListingContainer.js +115 -0
  135. package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -0
  136. package/lib-es/components/ListingContainer/index.js +3 -0
  137. package/lib-es/components/ListingContainer/index.js.map +1 -0
  138. package/lib-es/components/ListingContainer/mappers/exist-previous.js +3 -0
  139. package/lib-es/components/ListingContainer/mappers/exist-previous.js.map +1 -0
  140. package/lib-es/components/ListingContainer/mappers/index.js +3 -0
  141. package/lib-es/components/ListingContainer/mappers/index.js.map +1 -0
  142. package/lib-es/components/MediaListing.js +29 -0
  143. package/lib-es/components/MediaListing.js.map +1 -0
  144. package/lib-es/constants.js +36 -0
  145. package/lib-es/constants.js.map +1 -0
  146. package/lib-es/icons/MediaLibraryIcon.js +70 -0
  147. package/lib-es/icons/MediaLibraryIcon.js.map +1 -0
  148. package/lib-es/icons/index.js +3 -0
  149. package/lib-es/icons/index.js.map +1 -0
  150. package/lib-es/index.js +61 -0
  151. package/lib-es/index.js.map +1 -0
  152. package/lib-es/utils/available-filters/available-filters.js +26 -0
  153. package/lib-es/utils/available-filters/available-filters.js.map +1 -0
  154. package/lib-es/utils/bustUrl.js +7 -0
  155. package/lib-es/utils/bustUrl.js.map +1 -0
  156. package/lib-es/utils/media-context/index.js +4 -0
  157. package/lib-es/utils/media-context/index.js.map +1 -0
  158. package/lib-es/utils/media-context/media-context.js +6 -0
  159. package/lib-es/utils/media-context/media-context.js.map +1 -0
  160. package/lib-es/utils/media-context/useMediaContext.js +4 -0
  161. package/lib-es/utils/media-context/useMediaContext.js.map +1 -0
  162. package/package.json +9 -8
  163. package/src/components/EditMediaFile/EditMediaFile.js +3 -1
  164. package/src/components/EditorAdapter/EditorAdapter.js +12 -0
@@ -0,0 +1,178 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ const _excluded = ["message"],
4
+ _excluded2 = ["message"];
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
+ import React, { useState } from 'react';
8
+ import { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';
9
+ import FileUpload from '@blaze-react/file-upload';
10
+ import PropTypes from 'prop-types';
11
+ import { useToasts } from '@blaze-react/toaster';
12
+ import { useApolloClient, useQuery } from '@apollo/client';
13
+ import useFileList from '../FileList/useFileList';
14
+ const FileUploadModal = ({
15
+ onClose,
16
+ getSelectedFiles,
17
+ closeModalAndSetValue,
18
+ simpleLayout,
19
+ fileId,
20
+ storeKey,
21
+ selectedStoreKey
22
+ }) => {
23
+ const [files, setFiles] = useState([]);
24
+ const {
25
+ addToast
26
+ } = useToasts();
27
+ const client = useApolloClient();
28
+ const {
29
+ addNewFile
30
+ } = useFileList();
31
+ const fileStoresType = getQuery('GET_FILE_STORES');
32
+ const {
33
+ data: {
34
+ getFileStores: storeType = []
35
+ } = {}
36
+ } = useQuery(fileStoresType, {
37
+ variables: {
38
+ visibleInAdmin: true
39
+ }
40
+ });
41
+ const handleFiles = filesToUpload => {
42
+ if (fileId && filesToUpload && filesToUpload.length) {
43
+ setFiles([filesToUpload[0]]);
44
+ return;
45
+ }
46
+ setFiles(filesToUpload);
47
+ };
48
+ const uploadFiles = async () => {
49
+ const filesToProcess = fileId && files.length ? [files[0]] : files;
50
+ const response = await Promise.all(filesToProcess.map(({
51
+ file,
52
+ name,
53
+ data,
54
+ storeKey: fileStoreKey
55
+ }) => {
56
+ const payload = {
57
+ name,
58
+ storeKey: fileStoreKey || selectedStoreKey || storeKey,
59
+ data
60
+ };
61
+ if (fileId) {
62
+ payload.id = fileId;
63
+ } else if (!name) {
64
+ payload.name = file.filename;
65
+ }
66
+ return client.mutate({
67
+ mutation: getMutation('UPLOAD_FILE'),
68
+ variables: {
69
+ input: _objectSpread({
70
+ file
71
+ }, payload)
72
+ }
73
+ });
74
+ })).catch(error => {
75
+ addToast(error.message, {
76
+ appearance: 'error',
77
+ autoDismiss: true
78
+ });
79
+ return [];
80
+ });
81
+ const parsedResponse = response.map(({
82
+ data: {
83
+ file
84
+ }
85
+ }) => {
86
+ const _ref = file.result || {},
87
+ {
88
+ message
89
+ } = _ref,
90
+ rest = _objectWithoutProperties(_ref, _excluded);
91
+ return rest;
92
+ });
93
+ const fileNames = files.map(({
94
+ file
95
+ }) => file.name);
96
+ if (simpleLayout) {
97
+ if (fileId && parsedResponse && parsedResponse.length) {
98
+ const _parsedResponse$ = parsedResponse[0],
99
+ {
100
+ message
101
+ } = _parsedResponse$,
102
+ updatedFile = _objectWithoutProperties(_parsedResponse$, _excluded2);
103
+ try {
104
+ client.writeQuery({
105
+ query: getQuery('GET_FILE_BY_ID'),
106
+ variables: {
107
+ id: fileId
108
+ },
109
+ data: {
110
+ file: updatedFile
111
+ }
112
+ });
113
+ } catch (e) {
114
+ console.error(e); //eslint-disable-line
115
+ }
116
+ const updateMessage = `Updated: ${updatedFile.filename || fileNames[0]}`;
117
+ closeModalAndSetValue(simpleLayout, updatedFile, updateMessage);
118
+ return;
119
+ }
120
+ const filesToSelect = parsedResponse.map(({
121
+ id
122
+ }) => id);
123
+ const uploadMessage = `Uploaded: ${fileNames.join(', ')}`;
124
+ getSelectedFiles(null, filesToSelect);
125
+ closeModalAndSetValue(simpleLayout, filesToSelect, uploadMessage);
126
+ return;
127
+ }
128
+ addNewFile && addNewFile(parsedResponse);
129
+ const toastMessage = fileId ? `Updated: ${fileNames[0]}` : `Uploaded: ${fileNames.join(', ')}`;
130
+ addToast(toastMessage, {
131
+ appearance: 'success',
132
+ autoDismiss: true
133
+ });
134
+ };
135
+ const handleOnSave = async () => {
136
+ if (files.length) await uploadFiles();
137
+ onClose();
138
+ };
139
+ let storeOptions = storeType.map(type => [type.key, type.name]);
140
+ storeOptions = storeKey ? storeOptions.filter(([key]) => key === storeKey) : storeOptions;
141
+ return /*#__PURE__*/React.createElement(Modal, {
142
+ onClose: onClose,
143
+ title: "Add media",
144
+ actions: [{
145
+ textButton: 'Cancel',
146
+ callback: onClose,
147
+ modifiers: ['cancel']
148
+ }, {
149
+ textButton: 'Upload',
150
+ callback: handleOnSave,
151
+ modifiers: []
152
+ }],
153
+ upload: true
154
+ }, /*#__PURE__*/React.createElement(FileUpload, {
155
+ storeKey: selectedStoreKey || storeKey,
156
+ onChange: handleFiles,
157
+ selectOptions: storeOptions
158
+ }));
159
+ };
160
+ FileUploadModal.propTypes = {
161
+ fileId: PropTypes.string,
162
+ getSelectedFiles: PropTypes.func.isRequired,
163
+ onClose: PropTypes.func,
164
+ simpleLayout: PropTypes.bool,
165
+ closeModalAndSetValue: PropTypes.func,
166
+ storeKey: PropTypes.string,
167
+ selectedStoreKey: PropTypes.string
168
+ };
169
+ FileUploadModal.defaultProps = {
170
+ onClose: () => {},
171
+ closeModalAndSetValue: () => {},
172
+ simpleLayout: false,
173
+ fileId: null,
174
+ storeKey: null,
175
+ selectedStoreKey: null
176
+ };
177
+ export default FileUploadModal;
178
+ //# sourceMappingURL=FileUploadModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadModal.js","names":["React","useState","ModalAdapter","Modal","getMutation","getQuery","FileUpload","PropTypes","useToasts","useApolloClient","useQuery","useFileList","FileUploadModal","onClose","getSelectedFiles","closeModalAndSetValue","simpleLayout","fileId","storeKey","selectedStoreKey","files","setFiles","addToast","client","addNewFile","fileStoresType","data","getFileStores","storeType","variables","visibleInAdmin","handleFiles","filesToUpload","length","uploadFiles","filesToProcess","response","Promise","all","map","file","name","fileStoreKey","payload","id","filename","mutate","mutation","input","_objectSpread","catch","error","message","appearance","autoDismiss","parsedResponse","_ref","result","rest","_objectWithoutProperties","_excluded","fileNames","_parsedResponse$","updatedFile","_excluded2","writeQuery","query","e","console","updateMessage","filesToSelect","uploadMessage","join","toastMessage","handleOnSave","storeOptions","type","key","filter","createElement","title","actions","textButton","callback","modifiers","upload","onChange","selectOptions","propTypes","string","func","isRequired","bool","defaultProps"],"sources":["../../../src/components/FileUploadModal/FileUploadModal.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';\nimport FileUpload from '@blaze-react/file-upload';\nimport PropTypes from 'prop-types';\nimport { useToasts } from '@blaze-react/toaster';\nimport { useApolloClient, useQuery } from '@apollo/client';\nimport useFileList from '../FileList/useFileList';\n\nconst FileUploadModal = ({\n onClose,\n getSelectedFiles,\n closeModalAndSetValue,\n simpleLayout,\n fileId,\n storeKey,\n selectedStoreKey\n}) => {\n const [files, setFiles] = useState([]);\n const { addToast } = useToasts();\n const client = useApolloClient();\n const { addNewFile } = useFileList();\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n const handleFiles = filesToUpload => {\n if (fileId && filesToUpload && filesToUpload.length) {\n setFiles([filesToUpload[0]]);\n return;\n }\n setFiles(filesToUpload);\n };\n\n const uploadFiles = async () => {\n const filesToProcess = fileId && files.length ? [files[0]] : files;\n\n const response = await Promise.all(\n filesToProcess.map(({ file, name, data, storeKey: fileStoreKey }) => {\n const payload = {\n name,\n storeKey: fileStoreKey || selectedStoreKey || storeKey,\n data\n };\n if (fileId) {\n payload.id = fileId;\n } else if (!name) {\n payload.name = file.filename;\n }\n return client.mutate({\n mutation: getMutation('UPLOAD_FILE'),\n variables: { input: { file, ...payload } }\n });\n })\n ).catch(error => {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n return [];\n });\n\n const parsedResponse = response.map(({ data: { file } }) => {\n const { message, ...rest } = file.result || {};\n return rest;\n });\n\n const fileNames = files.map(({ file }) => file.name);\n\n if (simpleLayout) {\n if (fileId && parsedResponse && parsedResponse.length) {\n const { message, ...updatedFile } = parsedResponse[0];\n try {\n client.writeQuery({\n query: getQuery('GET_FILE_BY_ID'),\n variables: { id: fileId },\n data: { file: updatedFile }\n });\n } catch (e) {\n console.error(e); //eslint-disable-line\n }\n const updateMessage = `Updated: ${updatedFile.filename || fileNames[0]}`;\n closeModalAndSetValue(simpleLayout, updatedFile, updateMessage);\n return;\n }\n const filesToSelect = parsedResponse.map(({ id }) => id);\n const uploadMessage = `Uploaded: ${fileNames.join(', ')}`;\n getSelectedFiles(null, filesToSelect);\n closeModalAndSetValue(simpleLayout, filesToSelect, uploadMessage);\n return;\n }\n\n addNewFile && addNewFile(parsedResponse);\n const toastMessage = fileId ? `Updated: ${fileNames[0]}` : `Uploaded: ${fileNames.join(', ')}`;\n\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n };\n\n const handleOnSave = async () => {\n if (files.length) await uploadFiles();\n onClose();\n };\n\n let storeOptions = storeType.map(type => [type.key, type.name]);\n storeOptions = storeKey ? storeOptions.filter(([key]) => key === storeKey) : storeOptions;\n\n return (\n <Modal\n onClose={onClose}\n title=\"Add media\"\n actions={[\n {\n textButton: 'Cancel',\n callback: onClose,\n modifiers: ['cancel']\n },\n {\n textButton: 'Upload',\n callback: handleOnSave,\n modifiers: []\n }\n ]}\n upload>\n <FileUpload\n storeKey={selectedStoreKey || storeKey}\n onChange={handleFiles}\n selectOptions={storeOptions}\n />\n </Modal>\n );\n};\n\nFileUploadModal.propTypes = {\n fileId: PropTypes.string,\n getSelectedFiles: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n simpleLayout: PropTypes.bool,\n closeModalAndSetValue: PropTypes.func,\n storeKey: PropTypes.string,\n selectedStoreKey: PropTypes.string\n};\n\nFileUploadModal.defaultProps = {\n onClose: () => { },\n closeModalAndSetValue: () => { },\n simpleLayout: false,\n fileId: null,\n storeKey: null,\n selectedStoreKey: null\n};\n\nexport default FileUploadModal;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import FileUploadModal from './FileUploadModal';
2
+ export default FileUploadModal;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["FileUploadModal"],"sources":["../../../src/components/FileUploadModal/index.js"],"sourcesContent":["import FileUploadModal from './FileUploadModal';\n\nexport default FileUploadModal;\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,mBAAmB;AAE/C,eAAeA,eAAe","ignoreList":[]}
@@ -0,0 +1,135 @@
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';
7
+ import { useMediaContext, MediaContext } from '../../utils/media-context';
8
+ import useFileList from '../FileList/useFileList';
9
+ const FilterPanel = () => {
10
+ const [searchTerm, setSearchTerm] = useState('');
11
+ const {
12
+ filters,
13
+ selectedFilter,
14
+ changeSelectedFilter,
15
+ fileStores
16
+ } = useMediaContext(MediaContext);
17
+ const {
18
+ queryParams,
19
+ data
20
+ } = useFileList();
21
+ const [active, setActive] = useState(filters[0].id);
22
+ useEffect(() => {
23
+ if (queryParams.searchTerm === null) {
24
+ setSearchTerm('');
25
+ }
26
+ }, [queryParams.searchTerm]);
27
+ const handleSearchTerm = ({
28
+ target: {
29
+ value
30
+ }
31
+ }) => {
32
+ setSearchTerm(value);
33
+ };
34
+ const storeKey = selectedFilter.storeKey || '';
35
+ const onChangeFilter = id => {
36
+ setActive(id);
37
+ searchTerm ? changeSelectedFilter({
38
+ filter: id,
39
+ isSearch: true,
40
+ searchTerm,
41
+ storeKey
42
+ }) : changeSelectedFilter({
43
+ filter: id,
44
+ isSearch: false,
45
+ searchTerm: null,
46
+ storeKey
47
+ });
48
+ };
49
+ const handleKeyDown = ({
50
+ key
51
+ }) => {
52
+ if (key === 'Enter') {
53
+ searchTerm ? changeSelectedFilter({
54
+ filter: selectedFilter.filter,
55
+ isSearch: true,
56
+ searchTerm: searchTerm.trim(),
57
+ storeKey
58
+ }) : changeSelectedFilter({
59
+ filter: selectedFilter.filter,
60
+ isSearch: false,
61
+ searchTerm: null,
62
+ storeKey
63
+ });
64
+ }
65
+ };
66
+ const onSelectFilter = ({
67
+ value
68
+ }) => {
69
+ searchTerm ? changeSelectedFilter({
70
+ filter: selectedFilter.filter,
71
+ isSearch: true,
72
+ searchTerm: searchTerm.trim(),
73
+ storeKey: value
74
+ }) : changeSelectedFilter({
75
+ filter: selectedFilter.filter,
76
+ isSearch: false,
77
+ searchTerm: null,
78
+ storeKey: value
79
+ });
80
+ };
81
+ const activeSegements = filters.reduce((acc, {
82
+ id
83
+ }, index) => {
84
+ acc[`active-${index}`] = active === id;
85
+ return acc;
86
+ }, {});
87
+ const activeBarSegment = classnames('filter-panel__barWrapper--active', activeSegements);
88
+ const storeOptions = (fileStores || []).map(type => [type.key, type.name]);
89
+ return /*#__PURE__*/React.createElement("div", {
90
+ className: "filter-panel"
91
+ }, /*#__PURE__*/React.createElement("div", {
92
+ className: "filter-panel__wrapper"
93
+ }, /*#__PURE__*/React.createElement("ul", {
94
+ className: "filter-panel__list"
95
+ }, filters.map(({
96
+ label,
97
+ id
98
+ }) => selectedFilter.filter !== id ? /*#__PURE__*/React.createElement("li", {
99
+ key: label,
100
+ className: "filter-panel__list-item"
101
+ }, /*#__PURE__*/React.createElement("a", {
102
+ onClick: () => onChangeFilter(id)
103
+ }, label, " (", data[id], ")")) : /*#__PURE__*/React.createElement("li", {
104
+ key: label,
105
+ className: "filter-panel__list-item active"
106
+ }, label, " (", data[id], ")"))), /*#__PURE__*/React.createElement("div", {
107
+ className: "filter-panel__barWrapper"
108
+ }, /*#__PURE__*/React.createElement("div", {
109
+ className: activeBarSegment
110
+ }))), /*#__PURE__*/React.createElement("div", {
111
+ className: "filter-panel__searchBarWrapper"
112
+ }, /*#__PURE__*/React.createElement("div", {
113
+ className: "select__wrapper"
114
+ }, /*#__PURE__*/React.createElement(Select, {
115
+ name: "filter",
116
+ defaultTextValue: "Any",
117
+ options: storeOptions,
118
+ onChange: onSelectFilter,
119
+ selected: selectedFilter.storeKey
120
+ })), /*#__PURE__*/React.createElement(SearchBar, {
121
+ search: () => changeSelectedFilter({
122
+ filter: selectedFilter.filter,
123
+ isSearch: true,
124
+ searchTerm,
125
+ storeKey: selectedFilter.storeKey
126
+ }),
127
+ handleKeyDown: handleKeyDown,
128
+ searchTerm: searchTerm,
129
+ handleSearchTerm: handleSearchTerm,
130
+ placeholder: "Search term here...",
131
+ close: false
132
+ })));
133
+ };
134
+ export default FilterPanel;
135
+ //# sourceMappingURL=FilterPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"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","createElement","className","label","onClick","defaultTextValue","options","onChange","selected","search","placeholder","close"],"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"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 } =\n useMediaContext(MediaContext);\n const { queryParams, data } = useFileList();\n const [active, setActive] = useState(filters[0].id);\n\n useEffect(() => {\n if (queryParams.searchTerm === null) {\n setSearchTerm('');\n }\n }, [queryParams.searchTerm]);\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(({ 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 name=\"filter\"\n defaultTextValue=\"Any\"\n options={storeOptions}\n onChange={onSelectFilter}\n selected={selectedFilter.storeKey}\n />\n </div>\n <SearchBar\n search={() =>\n changeSelectedFilter({\n filter: selectedFilter.filter,\n isSearch: true,\n searchTerm,\n storeKey: selectedFilter.storeKey\n })\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"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import FilterPanel from './FilterPanel';
2
+ export default FilterPanel;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["FilterPanel"],"sources":["../../../src/components/FilterPanel/index.js"],"sourcesContent":["import FilterPanel from './FilterPanel';\n\nexport default FilterPanel;\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AAEvC,eAAeA,WAAW","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ import React from 'react';
2
+ import { PageHeader } from '@blaze-cms/admin';
3
+ import Button from '@blaze-react/button';
4
+ import More from '@blaze-react/more';
5
+ import PropTypes from 'prop-types';
6
+ import FileUploadModal from '../../FileUploadModal';
7
+ import MediaListing from './MediaListing';
8
+ import FilterPanel from '../../FilterPanel';
9
+ const Listing = ({
10
+ displayFileUploadModal,
11
+ handleDisplayFileUploadModal,
12
+ getSelectedFiles,
13
+ setDisplayFileUploadModal,
14
+ closeModalAndSetValue,
15
+ simpleLayout,
16
+ openEditInModal,
17
+ storeKey,
18
+ selectedStoreKey
19
+ }) => /*#__PURE__*/React.createElement("div", {
20
+ className: "page"
21
+ }, displayFileUploadModal && /*#__PURE__*/React.createElement(FileUploadModal, {
22
+ selectedStoreKey: selectedStoreKey,
23
+ storeKey: storeKey,
24
+ onClose: () => {
25
+ handleDisplayFileUploadModal(false);
26
+ setDisplayFileUploadModal(false);
27
+ },
28
+ closeModalAndSetValue: closeModalAndSetValue,
29
+ simpleLayout: simpleLayout,
30
+ getSelectedFiles: getSelectedFiles
31
+ }), !simpleLayout && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PageHeader, {
32
+ title: "Media library"
33
+ }, /*#__PURE__*/React.createElement(PageHeader.Actions, null, /*#__PURE__*/React.createElement(Button, {
34
+ modifiers: ['small'],
35
+ onClick: () => {
36
+ handleDisplayFileUploadModal(true);
37
+ }
38
+ }, "Upload"), /*#__PURE__*/React.createElement(More, {
39
+ displayBg: true
40
+ }, /*#__PURE__*/React.createElement(More.Avatar, {
41
+ isMoreMenu: true
42
+ }, /*#__PURE__*/React.createElement("span", {
43
+ className: "material-icons"
44
+ }, "more_vert")), /*#__PURE__*/React.createElement(More.Content, {
45
+ isMoreMenu: true
46
+ })))), /*#__PURE__*/React.createElement("div", {
47
+ className: "page__content page__content--with-side-panel"
48
+ }, /*#__PURE__*/React.createElement(FilterPanel, null), /*#__PURE__*/React.createElement(MediaListing, {
49
+ openEditInModal: openEditInModal
50
+ }))));
51
+ Listing.propTypes = {
52
+ getSelectedFiles: PropTypes.func.isRequired,
53
+ handleDisplayFileUploadModal: PropTypes.func,
54
+ simpleLayout: PropTypes.bool,
55
+ setDisplayFileUploadModal: PropTypes.func.isRequired,
56
+ displayFileUploadModal: PropTypes.bool.isRequired,
57
+ closeModalAndSetValue: PropTypes.func,
58
+ openEditInModal: PropTypes.bool,
59
+ storeKey: PropTypes.string.isRequired,
60
+ selectedStoreKey: PropTypes.string
61
+ };
62
+ Listing.defaultProps = {
63
+ closeModalAndSetValue: () => {},
64
+ handleDisplayFileUploadModal: () => {},
65
+ simpleLayout: false,
66
+ openEditInModal: false,
67
+ selectedStoreKey: null
68
+ };
69
+ export default Listing;
70
+ //# sourceMappingURL=Listing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Listing.js","names":["React","PageHeader","Button","More","PropTypes","FileUploadModal","MediaListing","FilterPanel","Listing","displayFileUploadModal","handleDisplayFileUploadModal","getSelectedFiles","setDisplayFileUploadModal","closeModalAndSetValue","simpleLayout","openEditInModal","storeKey","selectedStoreKey","createElement","className","onClose","Fragment","title","Actions","modifiers","onClick","displayBg","Avatar","isMoreMenu","Content","propTypes","func","isRequired","bool","string","defaultProps"],"sources":["../../../../src/components/ListingContainer/Listing/Listing.js"],"sourcesContent":["import React from 'react';\nimport { PageHeader } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport More from '@blaze-react/more';\nimport PropTypes from 'prop-types';\nimport FileUploadModal from '../../FileUploadModal';\nimport MediaListing from './MediaListing';\nimport FilterPanel from '../../FilterPanel';\n\nconst Listing = ({\n displayFileUploadModal,\n handleDisplayFileUploadModal,\n getSelectedFiles,\n setDisplayFileUploadModal,\n closeModalAndSetValue,\n simpleLayout,\n openEditInModal,\n storeKey,\n selectedStoreKey\n}) => (\n <div className=\"page\">\n {displayFileUploadModal && (\n <FileUploadModal\n selectedStoreKey={selectedStoreKey}\n storeKey={storeKey}\n onClose={() => {\n handleDisplayFileUploadModal(false);\n setDisplayFileUploadModal(false);\n }}\n closeModalAndSetValue={closeModalAndSetValue}\n simpleLayout={simpleLayout}\n getSelectedFiles={getSelectedFiles}\n />\n )}\n {!simpleLayout && (\n <>\n <PageHeader title=\"Media library\">\n <PageHeader.Actions>\n <Button\n modifiers={['small']}\n onClick={() => {\n handleDisplayFileUploadModal(true);\n }}>\n Upload\n </Button>\n <More displayBg>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu />\n </More>\n </PageHeader.Actions>\n </PageHeader>\n <div className=\"page__content page__content--with-side-panel\">\n <FilterPanel />\n <MediaListing openEditInModal={openEditInModal} />\n </div>\n </>\n )}\n </div>\n);\n\nListing.propTypes = {\n getSelectedFiles: PropTypes.func.isRequired,\n handleDisplayFileUploadModal: PropTypes.func,\n simpleLayout: PropTypes.bool,\n setDisplayFileUploadModal: PropTypes.func.isRequired,\n displayFileUploadModal: PropTypes.bool.isRequired,\n closeModalAndSetValue: PropTypes.func,\n openEditInModal: PropTypes.bool,\n storeKey: PropTypes.string.isRequired,\n selectedStoreKey: PropTypes.string\n};\n\nListing.defaultProps = {\n closeModalAndSetValue: () => {},\n handleDisplayFileUploadModal: () => {},\n simpleLayout: false,\n openEditInModal: false,\n selectedStoreKey: null\n};\n\nexport default Listing;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,153 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import React, { useState, useEffect } from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { CardPrompt } from '@blaze-cms/admin';
7
+ import Button from '@blaze-react/button';
8
+ import VirtualList from 'react-tiny-virtual-list';
9
+ import { useMediaContext, MediaContext } from '../../../../../utils/media-context';
10
+ import CardMedia from '../../../../CardMedia';
11
+ import { existPrevious } from '../../../mappers';
12
+ import useFileList from '../../../../FileList/useFileList';
13
+ import { MEDIA_LIST_ITEM_SIZE, MEDIA_OVER_SCAN_COUNT, AVAILABLE_FILTER_TYPES } from '../../../../../constants';
14
+ const MediaFileList = ({
15
+ displayCardPrompt,
16
+ setDisplayCardPrompt,
17
+ displayLayout,
18
+ wrapperRef,
19
+ modalTargetRef,
20
+ openEditInModal
21
+ }) => {
22
+ const [currentListIndex, setCurrentListIndex] = useState(1);
23
+ const [verifiedRanges, setVerifiedRanges] = useState([]);
24
+ const [listHeight, setListHeight] = useState(null);
25
+ const {
26
+ queryParams,
27
+ data,
28
+ loading,
29
+ setQueryParams,
30
+ clearList,
31
+ removeFile,
32
+ updateFile
33
+ } = useFileList();
34
+ const {
35
+ onClickPrompt,
36
+ getSelectedFiles,
37
+ selectedFiles,
38
+ selectedFilter
39
+ } = useMediaContext(MediaContext);
40
+ const hasFiles = !!data.files && !!data.files.length;
41
+ useEffect(() => {
42
+ if (!loading && !hasFiles) setDisplayCardPrompt(true);
43
+ }, [loading, hasFiles, setDisplayCardPrompt]);
44
+ useEffect(() => {
45
+ setVerifiedRanges([]);
46
+ setCurrentListIndex(0);
47
+ setQueryParams({
48
+ where: _objectSpread(_objectSpread({}, AVAILABLE_FILTER_TYPES[selectedFilter.filter]), {}, {
49
+ storeKey: selectedFilter.storeKey
50
+ }),
51
+ isSearch: selectedFilter.isSearch,
52
+ searchTerm: selectedFilter.searchTerm
53
+ });
54
+ },
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
56
+ [selectedFilter.filter, selectedFilter.storeKey, selectedFilter.isSearch, selectedFilter.searchTerm]);
57
+ const handleRenderedItems = ({
58
+ startIndex
59
+ }) => {
60
+ const rowsLength = data.files.length;
61
+ const loadIndex = Math.floor(rowsLength / 3) - MEDIA_OVER_SCAN_COUNT;
62
+ if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {
63
+ setQueryParams({
64
+ offset: data.files.length,
65
+ where: _objectSpread(_objectSpread({}, AVAILABLE_FILTER_TYPES[selectedFilter.filter]), {}, {
66
+ storeKey: selectedFilter.storeKey
67
+ }),
68
+ isSearch: selectedFilter.isSearch,
69
+ searchTerm: selectedFilter.searchTerm
70
+ });
71
+ setVerifiedRanges([...verifiedRanges, loadIndex]);
72
+ setCurrentListIndex(startIndex + MEDIA_OVER_SCAN_COUNT);
73
+ }
74
+ };
75
+ useEffect(() => {
76
+ const handleListHeight = () => {
77
+ setListHeight(wrapperRef.current.clientHeight - 40);
78
+ };
79
+ if (wrapperRef.current) {
80
+ handleListHeight();
81
+ window.addEventListener('resize', handleListHeight);
82
+ }
83
+ return () => {
84
+ window.removeEventListener('resize', handleListHeight);
85
+ };
86
+ }, [listHeight, wrapperRef]);
87
+ const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;
88
+ return /*#__PURE__*/React.createElement(React.Fragment, null, hasFiles && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("p", {
89
+ className: "media__fileList-counter"
90
+ }, searchedTerm, " ", data[selectedFilter.filter], " items"), /*#__PURE__*/React.createElement(VirtualList, {
91
+ width: "100%",
92
+ height: listHeight,
93
+ itemCount: data.files.length,
94
+ itemSize: MEDIA_LIST_ITEM_SIZE,
95
+ overscanCount: MEDIA_OVER_SCAN_COUNT,
96
+ scrollToIndex: currentListIndex,
97
+ onItemsRendered: handleRenderedItems,
98
+ renderItem: ({
99
+ index,
100
+ style
101
+ }) => {
102
+ const {
103
+ name,
104
+ url,
105
+ mimetype,
106
+ id,
107
+ data: fileData,
108
+ updated
109
+ } = data.files[index];
110
+ const isSelected = existPrevious(selectedFiles, id);
111
+ return /*#__PURE__*/React.createElement("div", {
112
+ key: index,
113
+ style: style,
114
+ className: "list__item--resultWrapper"
115
+ }, /*#__PURE__*/React.createElement(CardMedia, {
116
+ updateFile: updateFile,
117
+ clearList: clearList,
118
+ latestQueryToRefetchParams: queryParams,
119
+ modalTargetRef: modalTargetRef,
120
+ onSelected: getSelectedFiles,
121
+ key: id,
122
+ displayLayout: displayLayout,
123
+ selected: !!isSelected,
124
+ name: name,
125
+ url: url,
126
+ mimetype: mimetype,
127
+ id: id,
128
+ index: index,
129
+ removeFile: removeFile,
130
+ openEditInModal: openEditInModal,
131
+ data: fileData,
132
+ updated: updated
133
+ }));
134
+ }
135
+ })), displayCardPrompt && /*#__PURE__*/React.createElement(CardPrompt, null, /*#__PURE__*/React.createElement(Button, {
136
+ onClick: onClickPrompt,
137
+ className: "button button--rounded button--cta"
138
+ }, "Upload")));
139
+ };
140
+ MediaFileList.propTypes = {
141
+ setDisplayCardPrompt: PropTypes.func.isRequired,
142
+ displayCardPrompt: PropTypes.bool,
143
+ displayLayout: PropTypes.string.isRequired,
144
+ wrapperRef: PropTypes.object.isRequired,
145
+ modalTargetRef: PropTypes.object.isRequired,
146
+ openEditInModal: PropTypes.bool
147
+ };
148
+ MediaFileList.defaultProps = {
149
+ displayCardPrompt: true,
150
+ openEditInModal: false
151
+ };
152
+ export default MediaFileList;
153
+ //# sourceMappingURL=MediaFileList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaFileList.js","names":["React","useState","useEffect","PropTypes","CardPrompt","Button","VirtualList","useMediaContext","MediaContext","CardMedia","existPrevious","useFileList","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","AVAILABLE_FILTER_TYPES","MediaFileList","displayCardPrompt","setDisplayCardPrompt","displayLayout","wrapperRef","modalTargetRef","openEditInModal","currentListIndex","setCurrentListIndex","verifiedRanges","setVerifiedRanges","listHeight","setListHeight","queryParams","data","loading","setQueryParams","clearList","removeFile","updateFile","onClickPrompt","getSelectedFiles","selectedFiles","selectedFilter","hasFiles","files","length","where","_objectSpread","filter","storeKey","isSearch","searchTerm","handleRenderedItems","startIndex","rowsLength","loadIndex","Math","floor","includes","offset","handleListHeight","current","clientHeight","window","addEventListener","removeEventListener","searchedTerm","createElement","Fragment","className","width","height","itemCount","itemSize","overscanCount","scrollToIndex","onItemsRendered","renderItem","index","style","name","url","mimetype","id","fileData","updated","isSelected","key","latestQueryToRefetchParams","onSelected","selected","onClick","propTypes","func","isRequired","bool","string","object","defaultProps"],"sources":["../../../../../../src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardPrompt } from '@blaze-cms/admin';\nimport Button from '@blaze-react/button';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { useMediaContext, MediaContext } from '../../../../../utils/media-context';\nimport CardMedia from '../../../../CardMedia';\nimport { existPrevious } from '../../../mappers';\nimport useFileList from '../../../../FileList/useFileList';\nimport {\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n AVAILABLE_FILTER_TYPES\n} from '../../../../../constants';\n\nconst MediaFileList = ({\n displayCardPrompt,\n setDisplayCardPrompt,\n displayLayout,\n wrapperRef,\n modalTargetRef,\n openEditInModal\n}) => {\n const [currentListIndex, setCurrentListIndex] = useState(1);\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [listHeight, setListHeight] = useState(null);\n const { queryParams, data, loading, setQueryParams, clearList, removeFile, updateFile } =\n useFileList();\n\n const { onClickPrompt, getSelectedFiles, selectedFiles, selectedFilter } =\n useMediaContext(MediaContext);\n\n const hasFiles = !!data.files && !!data.files.length;\n\n useEffect(() => {\n if (!loading && !hasFiles) setDisplayCardPrompt(true);\n }, [loading, hasFiles, setDisplayCardPrompt]);\n\n useEffect(\n () => {\n setVerifiedRanges([]);\n setCurrentListIndex(0);\n setQueryParams({\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n selectedFilter.filter,\n selectedFilter.storeKey,\n selectedFilter.isSearch,\n selectedFilter.searchTerm\n ]\n );\n\n const handleRenderedItems = ({ startIndex }) => {\n const rowsLength = data.files.length;\n const loadIndex = Math.floor(rowsLength / 3) - MEDIA_OVER_SCAN_COUNT;\n\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({\n offset: data.files.length,\n where: {\n ...AVAILABLE_FILTER_TYPES[selectedFilter.filter],\n storeKey: selectedFilter.storeKey\n },\n isSearch: selectedFilter.isSearch,\n searchTerm: selectedFilter.searchTerm\n });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentListIndex(startIndex + MEDIA_OVER_SCAN_COUNT);\n }\n };\n\n useEffect(() => {\n const handleListHeight = () => {\n setListHeight(wrapperRef.current.clientHeight - 40);\n };\n\n if (wrapperRef.current) {\n handleListHeight();\n window.addEventListener('resize', handleListHeight);\n }\n return () => {\n window.removeEventListener('resize', handleListHeight);\n };\n }, [listHeight, wrapperRef]);\n\n const searchedTerm = queryParams.searchTerm && `${queryParams.searchTerm} -`;\n\n return (\n <>\n {hasFiles && (\n <>\n <p className=\"media__fileList-counter\">\n {searchedTerm} {data[selectedFilter.filter]} items\n </p>\n <VirtualList\n width=\"100%\"\n height={listHeight}\n itemCount={data.files.length}\n itemSize={MEDIA_LIST_ITEM_SIZE}\n overscanCount={MEDIA_OVER_SCAN_COUNT}\n scrollToIndex={currentListIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const { name, url, mimetype, id, data: fileData, updated } = data.files[index];\n const isSelected = existPrevious(selectedFiles, id);\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <CardMedia\n updateFile={updateFile}\n clearList={clearList}\n latestQueryToRefetchParams={queryParams}\n modalTargetRef={modalTargetRef}\n onSelected={getSelectedFiles}\n key={id}\n displayLayout={displayLayout}\n selected={!!isSelected}\n name={name}\n url={url}\n mimetype={mimetype}\n id={id}\n index={index}\n removeFile={removeFile}\n openEditInModal={openEditInModal}\n data={fileData}\n updated={updated}\n />\n </div>\n );\n }}\n />\n </>\n )}\n {displayCardPrompt && (\n <CardPrompt>\n <Button onClick={onClickPrompt} className=\"button button--rounded button--cta\">\n Upload\n </Button>\n </CardPrompt>\n )}\n </>\n );\n};\n\nMediaFileList.propTypes = {\n setDisplayCardPrompt: PropTypes.func.isRequired,\n displayCardPrompt: PropTypes.bool,\n displayLayout: PropTypes.string.isRequired,\n wrapperRef: PropTypes.object.isRequired,\n modalTargetRef: PropTypes.object.isRequired,\n openEditInModal: PropTypes.bool\n};\n\nMediaFileList.defaultProps = {\n displayCardPrompt: true,\n openEditInModal: false\n};\n\nexport default MediaFileList;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import MediaFileList from './MediaFileList';
2
+ export default MediaFileList;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["MediaFileList"],"sources":["../../../../../../src/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js"],"sourcesContent":["import MediaFileList from './MediaFileList';\n\nexport default MediaFileList;\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,iBAAiB;AAE3C,eAAeA,aAAa","ignoreList":[]}