@blaze-cms/plugin-media-ui 0.146.0-node18.1 → 0.146.0-rc-eagle-3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -12
- package/lib/components/CardMedia/CardMedia.js +235 -244
- package/lib/components/CardMedia/CardMedia.js.map +1 -1
- package/lib/components/CardMedia/index.js +2 -3
- package/lib/components/CardMedia/index.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFile.js +149 -115
- package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFilePage.js +89 -97
- package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib/components/EditMediaFile/index.js +2 -3
- package/lib/components/EditMediaFile/index.js.map +1 -1
- package/lib/components/EditorAdapter/EditorAdapter.js +43 -22
- package/lib/components/EditorAdapter/EditorAdapter.js.map +1 -1
- package/lib/components/EditorAdapter/index.js +2 -3
- package/lib/components/EditorAdapter/index.js.map +1 -1
- package/lib/components/FileList/FilesListContext/index.js +3 -4
- package/lib/components/FileList/FilesListContext/index.js.map +1 -1
- package/lib/components/FileList/FilesListProvider/index.js +27 -29
- package/lib/components/FileList/FilesListProvider/index.js.map +1 -1
- package/lib/components/FileList/useFileList/index.js +3 -6
- package/lib/components/FileList/useFileList/index.js.map +1 -1
- package/lib/components/FileList/useGetFiles/getFiles.js +167 -185
- package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib/components/FileList/useGetFiles/index.js +2 -3
- package/lib/components/FileList/useGetFiles/index.js.map +1 -1
- package/lib/components/FileList/useGetFiles/useGetFiles.js +93 -133
- package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/getCounters.js +10 -30
- package/lib/components/FileList/useGetFilesList/getCounters.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/index.js +2 -3
- package/lib/components/FileList/useGetFilesList/index.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js +92 -110
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib/components/FilePreview/Actions/index.js +25 -38
- package/lib/components/FilePreview/Actions/index.js.map +1 -1
- package/lib/components/FilePreview/Image/Image.js +35 -24
- package/lib/components/FilePreview/Image/Image.js.map +1 -1
- package/lib/components/FilePreview/Image/RawImage.js +25 -27
- package/lib/components/FilePreview/Image/RawImage.js.map +1 -1
- package/lib/components/FilePreview/Image/imageSchema.js +10 -7
- package/lib/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib/components/FilePreview/Image/index.js +1 -2
- package/lib/components/FilePreview/Image/index.js.map +1 -1
- package/lib/components/FilePreview/ModalContext.js +9 -0
- package/lib/components/FilePreview/ModalContext.js.map +1 -0
- package/lib/components/FilePreview/PDF/PDF.js +44 -31
- package/lib/components/FilePreview/PDF/PDF.js.map +1 -1
- package/lib/components/FilePreview/PDF/RawPDF.js +27 -29
- package/lib/components/FilePreview/PDF/RawPDF.js.map +1 -1
- package/lib/components/FilePreview/PDF/index.js +1 -2
- package/lib/components/FilePreview/PDF/index.js.map +1 -1
- package/lib/components/FilePreview/PDF/schema.js +3 -3
- package/lib/components/FilePreview/PDF/schema.js.map +1 -1
- package/lib/components/FilePreview/get-preview.js +12 -10
- package/lib/components/FilePreview/get-preview.js.map +1 -1
- package/lib/components/FilePreview/index.js +111 -58
- package/lib/components/FilePreview/index.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/PreviewDefault.js +35 -23
- package/lib/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/RawPreviewDefault.js +33 -27
- package/lib/components/FilePreview/previewDefault/RawPreviewDefault.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/icons/DefaultIcon.js +120 -123
- package/lib/components/FilePreview/previewDefault/icons/DefaultIcon.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/icons/index.js +2 -3
- package/lib/components/FilePreview/previewDefault/icons/index.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/index.js +1 -2
- package/lib/components/FilePreview/previewDefault/index.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js +3 -3
- package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FileList.js +10 -12
- package/lib/components/FilePreviewReadOnly/FileList.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FilePreviewList.js +14 -20
- package/lib/components/FilePreviewReadOnly/FilePreviewList.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js +53 -98
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/index.js +2 -3
- package/lib/components/FilePreviewReadOnly/index.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/mappers/format-initial-value.js +7 -8
- package/lib/components/FilePreviewReadOnly/mappers/format-initial-value.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/mappers/index.js +1 -2
- package/lib/components/FilePreviewReadOnly/mappers/index.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileList.js +27 -39
- package/lib/components/FileUploadAdapter/FileList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FilePreviewList.js +14 -20
- package/lib/components/FileUploadAdapter/FilePreviewList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileReorderList.js +18 -21
- package/lib/components/FileUploadAdapter/FileReorderList.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileReorderListItem.js +20 -23
- package/lib/components/FileUploadAdapter/FileReorderListItem.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js +253 -341
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib/components/FileUploadAdapter/index.js +2 -3
- package/lib/components/FileUploadAdapter/index.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/format-initial-value.js +7 -8
- package/lib/components/FileUploadAdapter/mappers/format-initial-value.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/get-button-text.js +9 -6
- package/lib/components/FileUploadAdapter/mappers/get-button-text.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/get-format.js +7 -13
- package/lib/components/FileUploadAdapter/mappers/get-format.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js +6 -5
- package/lib/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/index.js +6 -7
- package/lib/components/FileUploadAdapter/mappers/index.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/is-unselecting.js +2 -10
- package/lib/components/FileUploadAdapter/mappers/is-unselecting.js.map +1 -1
- package/lib/components/FileUploadAdapter/mappers/transform-to-array.js +2 -5
- package/lib/components/FileUploadAdapter/mappers/transform-to-array.js.map +1 -1
- package/lib/components/FileUploadAdapter/useLimit.js +4 -10
- package/lib/components/FileUploadAdapter/useLimit.js.map +1 -1
- package/lib/components/FileUploadModal/FileUploadModal.js +215 -146
- package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib/components/FileUploadModal/index.js +2 -3
- package/lib/components/FileUploadModal/index.js.map +1 -1
- package/lib/components/FilterPanel/FilterPanel.js +49 -151
- package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib/components/FilterPanel/MediaSearchFilter.js +41 -0
- package/lib/components/FilterPanel/MediaSearchFilter.js.map +1 -0
- package/lib/components/FilterPanel/index.js +2 -3
- package/lib/components/FilterPanel/index.js.map +1 -1
- package/lib/components/ListingContainer/Listing/Listing.js +58 -48
- package/lib/components/ListingContainer/Listing/Listing.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +83 -96
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js +2 -3
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/index.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js +23 -26
- package/lib/components/ListingContainer/Listing/MediaListing/MediaListing.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/index.js +2 -3
- package/lib/components/ListingContainer/Listing/MediaListing/index.js.map +1 -1
- package/lib/components/ListingContainer/Listing/index.js +2 -3
- package/lib/components/ListingContainer/Listing/index.js.map +1 -1
- package/lib/components/ListingContainer/ListingContainer.js +74 -93
- package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib/components/ListingContainer/index.js +2 -3
- package/lib/components/ListingContainer/index.js.map +1 -1
- package/lib/components/ListingContainer/mappers/exist-previous.js +3 -10
- package/lib/components/ListingContainer/mappers/exist-previous.js.map +1 -1
- package/lib/components/ListingContainer/mappers/index.js +2 -3
- package/lib/components/ListingContainer/mappers/index.js.map +1 -1
- package/lib/components/MediaListing.js +15 -26
- package/lib/components/MediaListing.js.map +1 -1
- package/lib/constants.js +17 -17
- package/lib/constants.js.map +1 -1
- package/lib/icons/MediaLibraryIcon.js +17 -20
- package/lib/icons/MediaLibraryIcon.js.map +1 -1
- package/lib/icons/index.js +2 -3
- package/lib/icons/index.js.map +1 -1
- package/lib/index.js +67 -92
- package/lib/index.js.map +1 -1
- package/lib/utils/available-filters/available-filters.js +1 -2
- package/lib/utils/available-filters/available-filters.js.map +1 -1
- package/lib/utils/bustUrl.js +13 -0
- package/lib/utils/bustUrl.js.map +1 -0
- package/lib/utils/media-context/index.js +4 -5
- package/lib/utils/media-context/index.js.map +1 -1
- package/lib/utils/media-context/media-context.js +3 -4
- package/lib/utils/media-context/media-context.js.map +1 -1
- package/lib/utils/media-context/useMediaContext.js +2 -4
- package/lib/utils/media-context/useMediaContext.js.map +1 -1
- package/lib-es/components/CardMedia/CardMedia.js +109 -52
- package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFile.js +109 -53
- package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js +45 -15
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib-es/components/EditorAdapter/EditorAdapter.js +26 -6
- package/lib-es/components/EditorAdapter/EditorAdapter.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/getFiles.js +6 -3
- package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js +7 -2
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +4 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib-es/components/FilePreview/Actions/index.js +2 -2
- package/lib-es/components/FilePreview/Actions/index.js.map +1 -1
- package/lib-es/components/FilePreview/Image/Image.js +16 -3
- package/lib-es/components/FilePreview/Image/Image.js.map +1 -1
- package/lib-es/components/FilePreview/Image/imageSchema.js +9 -5
- package/lib-es/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib-es/components/FilePreview/ModalContext.js +3 -0
- package/lib-es/components/FilePreview/ModalContext.js.map +1 -0
- package/lib-es/components/FilePreview/PDF/PDF.js +19 -4
- package/lib-es/components/FilePreview/PDF/PDF.js.map +1 -1
- package/lib-es/components/FilePreview/PDF/schema.js +2 -1
- package/lib-es/components/FilePreview/PDF/schema.js.map +1 -1
- package/lib-es/components/FilePreview/index.js +72 -9
- package/lib-es/components/FilePreview/index.js.map +1 -1
- package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js +18 -4
- package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
- package/lib-es/components/FilePreview/previewDefault/RawPreviewDefault.js +12 -4
- package/lib-es/components/FilePreview/previewDefault/RawPreviewDefault.js.map +1 -1
- package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
- package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
- package/lib-es/components/FilePreviewReadOnly/FileList.js +2 -2
- package/lib-es/components/FilePreviewReadOnly/FileList.js.map +1 -1
- package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js +14 -12
- package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +78 -43
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/mappers/get-button-text.js +5 -3
- package/lib-es/components/FileUploadAdapter/mappers/get-button-text.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js +5 -4
- package/lib-es/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js.map +1 -1
- package/lib-es/components/FileUploadModal/FileUploadModal.js +157 -29
- package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib-es/components/FilterPanel/FilterPanel.js +43 -123
- package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib-es/components/FilterPanel/MediaSearchFilter.js +34 -0
- package/lib-es/components/FilterPanel/MediaSearchFilter.js.map +1 -0
- package/lib-es/components/ListingContainer/Listing/Listing.js +17 -5
- package/lib-es/components/ListingContainer/Listing/Listing.js.map +1 -1
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +21 -10
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaListing.js +12 -3
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaListing.js.map +1 -1
- package/lib-es/components/ListingContainer/ListingContainer.js +18 -6
- package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib-es/constants.js +3 -2
- package/lib-es/constants.js.map +1 -1
- package/lib-es/index.js +20 -4
- package/lib-es/index.js.map +1 -1
- package/lib-es/utils/bustUrl.js +7 -0
- package/lib-es/utils/bustUrl.js.map +1 -0
- package/package.json +20 -13
- package/src/components/CardMedia/CardMedia.js +131 -82
- package/src/components/EditMediaFile/EditMediaFile.js +123 -46
- package/src/components/EditMediaFile/EditMediaFilePage.js +41 -10
- package/src/components/EditorAdapter/EditorAdapter.js +31 -4
- package/src/components/FileList/useGetFiles/getFiles.js +12 -4
- package/src/components/FileList/useGetFiles/useGetFiles.js +3 -4
- package/src/components/FileList/useGetFilesList/useGetFilesList.js +2 -1
- package/src/components/FilePreview/Actions/index.js +25 -27
- package/src/components/FilePreview/Image/Image.js +15 -2
- package/src/components/FilePreview/Image/imageSchema.js +9 -5
- package/src/components/FilePreview/ModalContext.js +3 -0
- package/src/components/FilePreview/PDF/PDF.js +17 -4
- package/src/components/FilePreview/PDF/schema.js +2 -1
- package/src/components/FilePreview/index.js +69 -6
- package/src/components/FilePreview/previewDefault/PreviewDefault.js +16 -3
- package/src/components/FilePreview/previewDefault/RawPreviewDefault.js +17 -7
- package/src/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
- package/src/components/FilePreviewReadOnly/FileList.js +1 -3
- package/src/components/FilePreviewReadOnly/FilePreviewReadOnly.js +17 -29
- package/src/components/FileUploadAdapter/FileUploadAdapter.js +66 -32
- package/src/components/FileUploadAdapter/mappers/get-button-text.js +4 -3
- package/src/components/FileUploadAdapter/mappers/get-number-files-pending-to-fetch.js +6 -4
- package/src/components/FileUploadModal/FileUploadModal.js +156 -45
- package/src/components/FilterPanel/FilterPanel.js +44 -129
- package/src/components/FilterPanel/MediaSearchFilter.js +32 -0
- package/src/components/ListingContainer/Listing/Listing.js +15 -5
- package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +18 -7
- package/src/components/ListingContainer/Listing/MediaListing/MediaListing.js +10 -2
- package/src/components/ListingContainer/ListingContainer.js +17 -5
- package/src/constants.js +16 -2
- package/src/index.js +17 -14
- package/src/utils/bustUrl.js +6 -0
- package/babel.config.js +0 -3
- package/jest.config.js +0 -5
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
const _excluded = ["name", "storeKey"],
|
|
5
|
+
_excluded2 = ["message"],
|
|
6
|
+
_excluded3 = ["message"];
|
|
7
|
+
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; }
|
|
8
|
+
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; }
|
|
9
|
+
import React, { useState, useMemo } from 'react';
|
|
2
10
|
import { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';
|
|
3
11
|
import FileUpload from '@blaze-react/file-upload';
|
|
12
|
+
import { getFormBuilderLookup } from '@blaze-cms/react-form-builder';
|
|
4
13
|
import PropTypes from 'prop-types';
|
|
5
14
|
import { useToasts } from '@blaze-react/toaster';
|
|
6
15
|
import { useApolloClient, useQuery } from '@apollo/client';
|
|
@@ -9,7 +18,10 @@ const FileUploadModal = ({
|
|
|
9
18
|
onClose,
|
|
10
19
|
getSelectedFiles,
|
|
11
20
|
closeModalAndSetValue,
|
|
12
|
-
simpleLayout
|
|
21
|
+
simpleLayout,
|
|
22
|
+
fileId,
|
|
23
|
+
storeKey,
|
|
24
|
+
selectedStoreKey
|
|
13
25
|
}) => {
|
|
14
26
|
const [files, setFiles] = useState([]);
|
|
15
27
|
const {
|
|
@@ -19,57 +31,164 @@ const FileUploadModal = ({
|
|
|
19
31
|
const {
|
|
20
32
|
addNewFile
|
|
21
33
|
} = useFileList();
|
|
34
|
+
const {
|
|
35
|
+
data: {
|
|
36
|
+
getEntitySchemas: [schemaData] = []
|
|
37
|
+
} = {},
|
|
38
|
+
loading: schemaLoading
|
|
39
|
+
} = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
|
|
40
|
+
variables: {
|
|
41
|
+
identifier: 'file'
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const customFields = useMemo(() => {
|
|
45
|
+
if (schemaData && schemaData.properties) {
|
|
46
|
+
const _schemaData$propertie = schemaData.properties,
|
|
47
|
+
{
|
|
48
|
+
name: _name,
|
|
49
|
+
storeKey: _storeKey
|
|
50
|
+
} = _schemaData$propertie,
|
|
51
|
+
restProperties = _objectWithoutProperties(_schemaData$propertie, _excluded);
|
|
52
|
+
return Object.entries(restProperties).filter(([, field]) => field && field.showInForm === true).map(([key, field]) => {
|
|
53
|
+
const Component = getFormBuilderLookup.getFormField(field.formFieldType);
|
|
54
|
+
return {
|
|
55
|
+
name: key,
|
|
56
|
+
label: field.label || key,
|
|
57
|
+
component: props => /*#__PURE__*/React.createElement(Component, _extends({}, field, props, {
|
|
58
|
+
onChange: (...args) => {
|
|
59
|
+
const [event] = args;
|
|
60
|
+
if (!event.value) {
|
|
61
|
+
event.value = event.event.target ? event.event.target.value : event.value;
|
|
62
|
+
}
|
|
63
|
+
if (event.event.target && !event.event.target.id) {
|
|
64
|
+
event.event.target.id = props.id || key;
|
|
65
|
+
}
|
|
66
|
+
if (event.event.target) {
|
|
67
|
+
event.event.target.name = key;
|
|
68
|
+
}
|
|
69
|
+
return props.onChange(...args);
|
|
70
|
+
}
|
|
71
|
+
}))
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return [];
|
|
76
|
+
}, [schemaData]);
|
|
22
77
|
const fileStoresType = getQuery('GET_FILE_STORES');
|
|
23
78
|
const {
|
|
24
79
|
data: {
|
|
25
80
|
getFileStores: storeType = []
|
|
26
|
-
} = {}
|
|
81
|
+
} = {},
|
|
82
|
+
loading: storeLoading
|
|
27
83
|
} = useQuery(fileStoresType, {
|
|
28
84
|
variables: {
|
|
29
85
|
visibleInAdmin: true
|
|
30
86
|
}
|
|
31
87
|
});
|
|
88
|
+
if (schemaLoading || storeLoading) return null;
|
|
32
89
|
const handleFiles = filesToUpload => {
|
|
90
|
+
if (fileId && filesToUpload && filesToUpload.length) {
|
|
91
|
+
setFiles([filesToUpload[0]]);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
33
94
|
setFiles(filesToUpload);
|
|
34
95
|
};
|
|
35
96
|
const uploadFiles = async () => {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
97
|
+
const filesToProcess = fileId && files.length ? [files[0]] : files;
|
|
98
|
+
const response = await Promise.all(filesToProcess.map(fileData => {
|
|
99
|
+
const {
|
|
100
|
+
file,
|
|
101
|
+
name,
|
|
102
|
+
data: dataProperties = {},
|
|
103
|
+
storeKey: fileStoreKey
|
|
104
|
+
} = fileData;
|
|
105
|
+
const customProperties = customFields.map(({
|
|
106
|
+
name: customPropertyName
|
|
107
|
+
}) => customPropertyName);
|
|
108
|
+
const otherProperties = Object.entries(dataProperties).reduce((acc, [key, value]) => {
|
|
109
|
+
if (customProperties.includes(key)) {
|
|
110
|
+
acc.fileProperties[key] = value;
|
|
111
|
+
} else {
|
|
112
|
+
acc.data[key] = value;
|
|
49
113
|
}
|
|
114
|
+
return acc;
|
|
115
|
+
}, {
|
|
116
|
+
data: {},
|
|
117
|
+
fileProperties: {}
|
|
118
|
+
});
|
|
119
|
+
const payload = _objectSpread({
|
|
120
|
+
name,
|
|
121
|
+
storeKey: fileStoreKey || selectedStoreKey || storeKey
|
|
122
|
+
}, otherProperties);
|
|
123
|
+
if (fileId) {
|
|
124
|
+
payload.id = fileId;
|
|
125
|
+
} else if (!name) {
|
|
126
|
+
payload.name = file.filename;
|
|
50
127
|
}
|
|
51
|
-
|
|
128
|
+
return client.mutate({
|
|
129
|
+
mutation: getMutation('UPLOAD_FILE'),
|
|
130
|
+
variables: {
|
|
131
|
+
input: _objectSpread({
|
|
132
|
+
file
|
|
133
|
+
}, payload)
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
})).catch(error => {
|
|
52
137
|
addToast(error.message, {
|
|
53
138
|
appearance: 'error',
|
|
54
139
|
autoDismiss: true
|
|
55
140
|
});
|
|
141
|
+
return [];
|
|
56
142
|
});
|
|
57
143
|
const parsedResponse = response.map(({
|
|
58
144
|
data: {
|
|
59
145
|
file
|
|
60
146
|
}
|
|
61
|
-
}) =>
|
|
147
|
+
}) => {
|
|
148
|
+
const _ref = file.result || {},
|
|
149
|
+
{
|
|
150
|
+
message
|
|
151
|
+
} = _ref,
|
|
152
|
+
rest = _objectWithoutProperties(_ref, _excluded2);
|
|
153
|
+
return rest;
|
|
154
|
+
});
|
|
62
155
|
const fileNames = files.map(({
|
|
63
156
|
file
|
|
64
157
|
}) => file.name);
|
|
65
|
-
addNewFile(parsedResponse);
|
|
66
|
-
const toastMessage = `Uploaded: ${fileNames.join(', ')}`;
|
|
67
158
|
if (simpleLayout) {
|
|
68
|
-
|
|
159
|
+
if (fileId && parsedResponse && parsedResponse.length) {
|
|
160
|
+
const _parsedResponse$ = parsedResponse[0],
|
|
161
|
+
{
|
|
162
|
+
message
|
|
163
|
+
} = _parsedResponse$,
|
|
164
|
+
updatedFile = _objectWithoutProperties(_parsedResponse$, _excluded3);
|
|
165
|
+
try {
|
|
166
|
+
client.writeQuery({
|
|
167
|
+
query: getQuery('GET_FILE_BY_ID'),
|
|
168
|
+
variables: {
|
|
169
|
+
id: fileId
|
|
170
|
+
},
|
|
171
|
+
data: {
|
|
172
|
+
file: updatedFile
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
} catch (e) {
|
|
176
|
+
console.error(e); //eslint-disable-line
|
|
177
|
+
}
|
|
178
|
+
const updateMessage = `Updated: ${updatedFile.filename || fileNames[0]}`;
|
|
179
|
+
closeModalAndSetValue(simpleLayout, updatedFile, updateMessage);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const filesToSelect = parsedResponse.map(({
|
|
183
|
+
id
|
|
184
|
+
}) => id);
|
|
185
|
+
const uploadMessage = `Uploaded: ${fileNames.join(', ')}`;
|
|
69
186
|
getSelectedFiles(null, filesToSelect);
|
|
70
|
-
closeModalAndSetValue(simpleLayout, filesToSelect,
|
|
187
|
+
closeModalAndSetValue(simpleLayout, filesToSelect, uploadMessage);
|
|
71
188
|
return;
|
|
72
189
|
}
|
|
190
|
+
addNewFile && addNewFile(parsedResponse);
|
|
191
|
+
const toastMessage = fileId ? `Updated: ${fileNames[0]}` : `Uploaded: ${fileNames.join(', ')}`;
|
|
73
192
|
addToast(toastMessage, {
|
|
74
193
|
appearance: 'success',
|
|
75
194
|
autoDismiss: true
|
|
@@ -79,8 +198,9 @@ const FileUploadModal = ({
|
|
|
79
198
|
if (files.length) await uploadFiles();
|
|
80
199
|
onClose();
|
|
81
200
|
};
|
|
82
|
-
|
|
83
|
-
|
|
201
|
+
let storeOptions = storeType.map(type => [type.key, type.name]);
|
|
202
|
+
storeOptions = storeKey ? storeOptions.filter(([key]) => key === storeKey) : storeOptions;
|
|
203
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
84
204
|
onClose: onClose,
|
|
85
205
|
title: "Add media",
|
|
86
206
|
actions: [{
|
|
@@ -88,26 +208,34 @@ const FileUploadModal = ({
|
|
|
88
208
|
callback: onClose,
|
|
89
209
|
modifiers: ['cancel']
|
|
90
210
|
}, {
|
|
91
|
-
textButton: '
|
|
211
|
+
textButton: 'Upload',
|
|
92
212
|
callback: handleOnSave,
|
|
93
213
|
modifiers: []
|
|
94
214
|
}],
|
|
95
215
|
upload: true
|
|
96
216
|
}, /*#__PURE__*/React.createElement(FileUpload, {
|
|
217
|
+
storeKey: selectedStoreKey || storeKey,
|
|
97
218
|
onChange: handleFiles,
|
|
98
|
-
selectOptions: storeOptions
|
|
99
|
-
|
|
219
|
+
selectOptions: storeOptions,
|
|
220
|
+
customFields: customFields
|
|
221
|
+
}));
|
|
100
222
|
};
|
|
101
223
|
FileUploadModal.propTypes = {
|
|
224
|
+
fileId: PropTypes.string,
|
|
102
225
|
getSelectedFiles: PropTypes.func.isRequired,
|
|
103
226
|
onClose: PropTypes.func,
|
|
104
227
|
simpleLayout: PropTypes.bool,
|
|
105
|
-
closeModalAndSetValue: PropTypes.func
|
|
228
|
+
closeModalAndSetValue: PropTypes.func,
|
|
229
|
+
storeKey: PropTypes.string,
|
|
230
|
+
selectedStoreKey: PropTypes.string
|
|
106
231
|
};
|
|
107
232
|
FileUploadModal.defaultProps = {
|
|
108
233
|
onClose: () => {},
|
|
109
234
|
closeModalAndSetValue: () => {},
|
|
110
|
-
simpleLayout: false
|
|
235
|
+
simpleLayout: false,
|
|
236
|
+
fileId: null,
|
|
237
|
+
storeKey: null,
|
|
238
|
+
selectedStoreKey: null
|
|
111
239
|
};
|
|
112
240
|
export default FileUploadModal;
|
|
113
241
|
//# sourceMappingURL=FileUploadModal.js.map
|
|
@@ -1 +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","files","setFiles","addToast","client","addNewFile","fileStoresType","data","getFileStores","storeType","variables","visibleInAdmin","handleFiles","filesToUpload","uploadFiles","response","Promise","all","map","file","name","fileData","storeKey","mutate","mutation","input","filename","catch","error","message","appearance","autoDismiss","parsedResponse","result","fileNames","toastMessage","join","filesToSelect","id","handleOnSave","length","storeOptions","type","key","createElement","Fragment","title","actions","textButton","callback","modifiers","upload","onChange","selectOptions","propTypes","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 = ({ onClose, getSelectedFiles, closeModalAndSetValue, simpleLayout }) => {\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\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n const handleFiles = filesToUpload => {\n setFiles(filesToUpload);\n };\n\n const uploadFiles = async () => {\n const response = await Promise.all(\n files.map(({ file, name, data: fileData, storeKey }) =>\n client.mutate({\n mutation: getMutation('UPLOAD_FILE'),\n variables: {\n input: {\n file,\n name: name || file.filename,\n storeKey,\n data: fileData\n }\n }\n })\n )\n ).catch(error => {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n });\n\n const parsedResponse = response.map(({ data: { file } }) => file.result);\n\n const fileNames = files.map(({ file }) => file.name);\n addNewFile(parsedResponse);\n const toastMessage = `Uploaded: ${fileNames.join(', ')}`;\n\n if (simpleLayout) {\n const filesToSelect = parsedResponse.map(file => file.id);\n getSelectedFiles(null, filesToSelect);\n closeModalAndSetValue(simpleLayout, filesToSelect, toastMessage);\n return;\n }\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 const storeOptions = storeType.map(type => [type.key, type.name]);\n\n return (\n <>\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: 'Save',\n callback: handleOnSave,\n modifiers: []\n }\n ]}\n upload>\n <FileUpload onChange={handleFiles} selectOptions={storeOptions} />\n </Modal>\n </>\n );\n};\n\nFileUploadModal.propTypes = {\n getSelectedFiles: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n simpleLayout: PropTypes.bool,\n closeModalAndSetValue: PropTypes.func\n};\n\nFileUploadModal.defaultProps = {\n onClose: () => {},\n closeModalAndSetValue: () => {},\n simpleLayout: false\n};\n\nexport default FileUploadModal;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,YAAY,IAAIC,KAAK,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,2BAA2B;AACxF,OAAOC,UAAU,MAAM,0BAA0B;AACjD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,eAAe,EAAEC,QAAQ,QAAQ,gBAAgB;AAC1D,OAAOC,WAAW,MAAM,yBAAyB;AAEjD,MAAMC,eAAe,GAAGA,CAAC;EAAEC,OAAO;EAAEC,gBAAgB;EAAEC,qBAAqB;EAAEC;AAAa,CAAC,KAAK;EAC9F,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGjB,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM;IAAEkB;EAAS,CAAC,GAAGX,SAAS,CAAC,CAAC;EAChC,MAAMY,MAAM,GAAGX,eAAe,CAAC,CAAC;EAChC,MAAM;IAAEY;EAAW,CAAC,GAAGV,WAAW,CAAC,CAAC;EAEpC,MAAMW,cAAc,GAAGjB,QAAQ,CAAC,iBAAiB,CAAC;EAElD,MAAM;IAAEkB,IAAI,EAAE;MAAEC,aAAa,EAAEC,SAAS,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGf,QAAQ,CAACY,cAAc,EAAE;IAChFI,SAAS,EAAE;MAAEC,cAAc,EAAE;IAAK;EACpC,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGC,aAAa,IAAI;IACnCX,QAAQ,CAACW,aAAa,CAAC;EACzB,CAAC;EAED,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,MAAMC,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAG,CAChChB,KAAK,CAACiB,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEC,IAAI;MAAEb,IAAI,EAAEc,QAAQ;MAAEC;IAAS,CAAC,KACjDlB,MAAM,CAACmB,MAAM,CAAC;MACZC,QAAQ,EAAEpC,WAAW,CAAC,aAAa,CAAC;MACpCsB,SAAS,EAAE;QACTe,KAAK,EAAE;UACLN,IAAI;UACJC,IAAI,EAAEA,IAAI,IAAID,IAAI,CAACO,QAAQ;UAC3BJ,QAAQ;UACRf,IAAI,EAAEc;QACR;MACF;IACF,CAAC,CACH,CACF,CAAC,CAACM,KAAK,CAACC,KAAK,IAAI;MACfzB,QAAQ,CAACyB,KAAK,CAACC,OAAO,EAAE;QACtBC,UAAU,EAAE,OAAO;QACnBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAGjB,QAAQ,CAACG,GAAG,CAAC,CAAC;MAAEX,IAAI,EAAE;QAAEY;MAAK;IAAE,CAAC,KAAKA,IAAI,CAACc,MAAM,CAAC;IAExE,MAAMC,SAAS,GAAGjC,KAAK,CAACiB,GAAG,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,CAACC,IAAI,CAAC;IACpDf,UAAU,CAAC2B,cAAc,CAAC;IAC1B,MAAMG,YAAY,GAAG,aAAaD,SAAS,CAACE,IAAI,CAAC,IAAI,CAAC,EAAE;IAExD,IAAIpC,YAAY,EAAE;MAChB,MAAMqC,aAAa,GAAGL,cAAc,CAACd,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACmB,EAAE,CAAC;MACzDxC,gBAAgB,CAAC,IAAI,EAAEuC,aAAa,CAAC;MACrCtC,qBAAqB,CAACC,YAAY,EAAEqC,aAAa,EAAEF,YAAY,CAAC;MAChE;IACF;IAEAhC,QAAQ,CAACgC,YAAY,EAAE;MACrBL,UAAU,EAAE,SAAS;MACrBC,WAAW,EAAE;IACf,CAAC,CAAC;EACJ,CAAC;EAED,MAAMQ,YAAY,GAAG,MAAAA,CAAA,KAAY;IAC/B,IAAItC,KAAK,CAACuC,MAAM,EAAE,MAAM1B,WAAW,CAAC,CAAC;IACrCjB,OAAO,CAAC,CAAC;EACX,CAAC;EAED,MAAM4C,YAAY,GAAGhC,SAAS,CAACS,GAAG,CAACwB,IAAI,IAAI,CAACA,IAAI,CAACC,GAAG,EAAED,IAAI,CAACtB,IAAI,CAAC,CAAC;EAEjE,oBACEpC,KAAA,CAAA4D,aAAA,CAAA5D,KAAA,CAAA6D,QAAA,qBACE7D,KAAA,CAAA4D,aAAA,CAACzD,KAAK;IACJU,OAAO,EAAEA,OAAQ;IACjBiD,KAAK,EAAC,WAAW;IACjBC,OAAO,EAAE,CACP;MACEC,UAAU,EAAE,QAAQ;MACpBC,QAAQ,EAAEpD,OAAO;MACjBqD,SAAS,EAAE,CAAC,QAAQ;IACtB,CAAC,EACD;MACEF,UAAU,EAAE,MAAM;MAClBC,QAAQ,EAAEV,YAAY;MACtBW,SAAS,EAAE;IACb,CAAC,CACD;IACFC,MAAM;EAAA,gBACNnE,KAAA,CAAA4D,aAAA,CAACtD,UAAU;IAAC8D,QAAQ,EAAExC,WAAY;IAACyC,aAAa,EAAEZ;EAAa,CAAE,CAC5D,CACP,CAAC;AAEP,CAAC;AAED7C,eAAe,CAAC0D,SAAS,GAAG;EAC1BxD,gBAAgB,EAAEP,SAAS,CAACgE,IAAI,CAACC,UAAU;EAC3C3D,OAAO,EAAEN,SAAS,CAACgE,IAAI;EACvBvD,YAAY,EAAET,SAAS,CAACkE,IAAI;EAC5B1D,qBAAqB,EAAER,SAAS,CAACgE;AACnC,CAAC;AAED3D,eAAe,CAAC8D,YAAY,GAAG;EAC7B7D,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBE,qBAAqB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC/BC,YAAY,EAAE;AAChB,CAAC;AAED,eAAeJ,eAAe","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FileUploadModal.js","names":["React","useState","useMemo","ModalAdapter","Modal","getMutation","getQuery","FileUpload","getFormBuilderLookup","PropTypes","useToasts","useApolloClient","useQuery","useFileList","FileUploadModal","onClose","getSelectedFiles","closeModalAndSetValue","simpleLayout","fileId","storeKey","selectedStoreKey","files","setFiles","addToast","client","addNewFile","data","getEntitySchemas","schemaData","loading","schemaLoading","variables","identifier","customFields","properties","_schemaData$propertie","name","_name","_storeKey","restProperties","_objectWithoutProperties","_excluded","Object","entries","filter","field","showInForm","map","key","Component","getFormField","formFieldType","label","component","props","createElement","_extends","onChange","args","event","value","target","id","fileStoresType","getFileStores","storeType","storeLoading","visibleInAdmin","handleFiles","filesToUpload","length","uploadFiles","filesToProcess","response","Promise","all","fileData","file","dataProperties","fileStoreKey","customProperties","customPropertyName","otherProperties","reduce","acc","includes","fileProperties","payload","_objectSpread","filename","mutate","mutation","input","catch","error","message","appearance","autoDismiss","parsedResponse","_ref","result","rest","_excluded2","fileNames","_parsedResponse$","updatedFile","_excluded3","writeQuery","query","e","console","updateMessage","filesToSelect","uploadMessage","join","toastMessage","handleOnSave","storeOptions","type","title","actions","textButton","callback","modifiers","upload","selectOptions","propTypes","string","func","isRequired","bool","defaultProps"],"sources":["../../../src/components/FileUploadModal/FileUploadModal.js"],"sourcesContent":["import React, { useState, useMemo } from 'react';\nimport { ModalAdapter as Modal, getMutation, getQuery } from '@blaze-cms/admin-ui-utils';\nimport FileUpload from '@blaze-react/file-upload';\nimport { getFormBuilderLookup } from '@blaze-cms/react-form-builder';\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 { data: { getEntitySchemas: [schemaData] = [] } = {}, loading: schemaLoading } = useQuery(\n getQuery('GET_ENTITY_SCHEMA'),\n {\n variables: { identifier: 'file' }\n }\n );\n\n const customFields = useMemo(() => {\n if (schemaData && schemaData.properties) {\n const { name: _name, storeKey: _storeKey, ...restProperties } = schemaData.properties;\n return Object.entries(restProperties)\n .filter(([, field]) => field && field.showInForm === true)\n .map(([key, field]) => {\n const Component = getFormBuilderLookup.getFormField(field.formFieldType);\n return {\n name: key,\n label: field.label || key,\n component: props => (\n <Component\n {...field}\n {...props}\n onChange={(...args) => {\n const [event] = args;\n if (!event.value) {\n event.value = event.event.target ? event.event.target.value : event.value;\n }\n if (event.event.target && !event.event.target.id) {\n event.event.target.id = props.id || key;\n }\n if (event.event.target) {\n event.event.target.name = key;\n }\n return props.onChange(...args);\n }}\n />\n )\n };\n });\n }\n return [];\n }, [schemaData]);\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { data: { getFileStores: storeType = [] } = {}, loading: storeLoading } = useQuery(\n fileStoresType,\n {\n variables: { visibleInAdmin: true }\n }\n );\n\n if (schemaLoading || storeLoading) return null;\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(fileData => {\n const { file, name, data: dataProperties = {}, storeKey: fileStoreKey } = fileData;\n const customProperties = customFields.map(\n ({ name: customPropertyName }) => customPropertyName\n );\n const otherProperties = Object.entries(dataProperties).reduce(\n (acc, [key, value]) => {\n if (customProperties.includes(key)) {\n acc.fileProperties[key] = value;\n } else {\n acc.data[key] = value;\n }\n return acc;\n },\n { data: {}, fileProperties: {} }\n );\n const payload = {\n name,\n storeKey: fileStoreKey || selectedStoreKey || storeKey,\n ...otherProperties\n };\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 customFields={customFields}\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":[]}
|
|
@@ -1,135 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
const FilterPanel = () => {
|
|
10
|
-
const [searchTerm, setSearchTerm] = useState('');
|
|
11
5
|
const {
|
|
12
6
|
filters,
|
|
13
7
|
selectedFilter,
|
|
14
|
-
changeSelectedFilter
|
|
15
|
-
fileStores
|
|
8
|
+
changeSelectedFilter
|
|
16
9
|
} = useMediaContext(MediaContext);
|
|
17
|
-
const {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
storeKey
|
|
10
|
+
const handleOnSelectFilter = (esFilters = []) => {
|
|
11
|
+
let nextSearchTerm = null;
|
|
12
|
+
let nextFilterId = selectedFilter.filter;
|
|
13
|
+
let nextStoreKey = selectedFilter.storeKey || '';
|
|
14
|
+
esFilters.forEach(filterObj => {
|
|
15
|
+
const {
|
|
16
|
+
simple_query_string: simpleQueryString,
|
|
17
|
+
match
|
|
18
|
+
} = filterObj || {};
|
|
19
|
+
if (simpleQueryString) {
|
|
20
|
+
const {
|
|
21
|
+
query
|
|
22
|
+
} = simpleQueryString;
|
|
23
|
+
if (query != null) {
|
|
24
|
+
nextSearchTerm = String(query).trim();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (match) {
|
|
28
|
+
const {
|
|
29
|
+
'type.keyword': typeKeyword,
|
|
30
|
+
'storeKey.keyword': storeKeyKeyword
|
|
31
|
+
} = match;
|
|
32
|
+
if (typeKeyword && typeKeyword.query != null) {
|
|
33
|
+
nextFilterId = typeKeyword.query;
|
|
34
|
+
}
|
|
35
|
+
if (storeKeyKeyword && storeKeyKeyword.query != null) {
|
|
36
|
+
nextStoreKey = storeKeyKeyword.query;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
47
39
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
40
|
+
changeSelectedFilter({
|
|
41
|
+
filter: nextFilterId,
|
|
42
|
+
isSearch: Boolean(nextSearchTerm),
|
|
43
|
+
searchTerm: nextSearchTerm || null,
|
|
44
|
+
storeKey: nextStoreKey,
|
|
45
|
+
esFilters
|
|
79
46
|
});
|
|
80
47
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
})));
|
|
48
|
+
return /*#__PURE__*/React.createElement(MediaSearchFilter, {
|
|
49
|
+
selectedFilter: selectedFilter,
|
|
50
|
+
listFilters: filters,
|
|
51
|
+
updateListingFilters: handleOnSelectFilter
|
|
52
|
+
});
|
|
133
53
|
};
|
|
134
54
|
export default FilterPanel;
|
|
135
55
|
//# sourceMappingURL=FilterPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPanel.js","names":["React","
|
|
1
|
+
{"version":3,"file":"FilterPanel.js","names":["React","MediaSearchFilter","useMediaContext","MediaContext","FilterPanel","filters","selectedFilter","changeSelectedFilter","handleOnSelectFilter","esFilters","nextSearchTerm","nextFilterId","filter","nextStoreKey","storeKey","forEach","filterObj","simple_query_string","simpleQueryString","match","query","String","trim","typeKeyword","storeKeyKeyword","isSearch","Boolean","searchTerm","createElement","listFilters","updateListingFilters"],"sources":["../../../src/components/FilterPanel/FilterPanel.js"],"sourcesContent":["import React from 'react';\nimport MediaSearchFilter from './MediaSearchFilter';\nimport { useMediaContext, MediaContext } from '../../utils/media-context';\n\nconst FilterPanel = () => {\n const { filters, selectedFilter, changeSelectedFilter } = useMediaContext(MediaContext);\n\n const handleOnSelectFilter = (esFilters = []) => {\n let nextSearchTerm = null;\n let nextFilterId = selectedFilter.filter;\n let nextStoreKey = selectedFilter.storeKey || '';\n\n esFilters.forEach(filterObj => {\n const { simple_query_string: simpleQueryString, match } = filterObj || {};\n\n if (simpleQueryString) {\n const { query } = simpleQueryString;\n if (query != null) {\n nextSearchTerm = String(query).trim();\n }\n }\n\n if (match) {\n const { 'type.keyword': typeKeyword, 'storeKey.keyword': storeKeyKeyword } = match;\n\n if (typeKeyword && typeKeyword.query != null) {\n nextFilterId = typeKeyword.query;\n }\n\n if (storeKeyKeyword && storeKeyKeyword.query != null) {\n nextStoreKey = storeKeyKeyword.query;\n }\n }\n });\n\n changeSelectedFilter({\n filter: nextFilterId,\n isSearch: Boolean(nextSearchTerm),\n searchTerm: nextSearchTerm || null,\n storeKey: nextStoreKey,\n esFilters\n });\n };\n\n return (\n <MediaSearchFilter\n selectedFilter={selectedFilter}\n listFilters={filters}\n updateListingFilters={handleOnSelectFilter}\n />\n );\n};\n\nexport default FilterPanel;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,eAAe,EAAEC,YAAY,QAAQ,2BAA2B;AAEzE,MAAMC,WAAW,GAAGA,CAAA,KAAM;EACxB,MAAM;IAAEC,OAAO;IAAEC,cAAc;IAAEC;EAAqB,CAAC,GAAGL,eAAe,CAACC,YAAY,CAAC;EAEvF,MAAMK,oBAAoB,GAAGA,CAACC,SAAS,GAAG,EAAE,KAAK;IAC/C,IAAIC,cAAc,GAAG,IAAI;IACzB,IAAIC,YAAY,GAAGL,cAAc,CAACM,MAAM;IACxC,IAAIC,YAAY,GAAGP,cAAc,CAACQ,QAAQ,IAAI,EAAE;IAEhDL,SAAS,CAACM,OAAO,CAACC,SAAS,IAAI;MAC7B,MAAM;QAAEC,mBAAmB,EAAEC,iBAAiB;QAAEC;MAAM,CAAC,GAAGH,SAAS,IAAI,CAAC,CAAC;MAEzE,IAAIE,iBAAiB,EAAE;QACrB,MAAM;UAAEE;QAAM,CAAC,GAAGF,iBAAiB;QACnC,IAAIE,KAAK,IAAI,IAAI,EAAE;UACjBV,cAAc,GAAGW,MAAM,CAACD,KAAK,CAAC,CAACE,IAAI,CAAC,CAAC;QACvC;MACF;MAEA,IAAIH,KAAK,EAAE;QACT,MAAM;UAAE,cAAc,EAAEI,WAAW;UAAE,kBAAkB,EAAEC;QAAgB,CAAC,GAAGL,KAAK;QAElF,IAAII,WAAW,IAAIA,WAAW,CAACH,KAAK,IAAI,IAAI,EAAE;UAC5CT,YAAY,GAAGY,WAAW,CAACH,KAAK;QAClC;QAEA,IAAII,eAAe,IAAIA,eAAe,CAACJ,KAAK,IAAI,IAAI,EAAE;UACpDP,YAAY,GAAGW,eAAe,CAACJ,KAAK;QACtC;MACF;IACF,CAAC,CAAC;IAEFb,oBAAoB,CAAC;MACnBK,MAAM,EAAED,YAAY;MACpBc,QAAQ,EAAEC,OAAO,CAAChB,cAAc,CAAC;MACjCiB,UAAU,EAAEjB,cAAc,IAAI,IAAI;MAClCI,QAAQ,EAAED,YAAY;MACtBJ;IACF,CAAC,CAAC;EACJ,CAAC;EAED,oBACET,KAAA,CAAA4B,aAAA,CAAC3B,iBAAiB;IAChBK,cAAc,EAAEA,cAAe;IAC/BuB,WAAW,EAAExB,OAAQ;IACrByB,oBAAoB,EAAEtB;EAAqB,CAC5C,CAAC;AAEN,CAAC;AAED,eAAeJ,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
const MediaSearchFilter = ({
|
|
7
|
+
selectedFilter,
|
|
8
|
+
listFilters,
|
|
9
|
+
updateListingFilters
|
|
10
|
+
}) => {
|
|
11
|
+
var _data$getEntitySchema;
|
|
12
|
+
const {
|
|
13
|
+
data
|
|
14
|
+
} = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
|
|
15
|
+
variables: {
|
|
16
|
+
identifier: 'file'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const getEntitySchemas = (_data$getEntitySchema = data === null || data === void 0 ? void 0 : data.getEntitySchemas) !== null && _data$getEntitySchema !== void 0 ? _data$getEntitySchema : [];
|
|
20
|
+
if (!getEntitySchemas.length) return null;
|
|
21
|
+
return /*#__PURE__*/React.createElement(SearchFilter, {
|
|
22
|
+
schema: getEntitySchemas[0],
|
|
23
|
+
listFilters: listFilters,
|
|
24
|
+
setListFilters: updateListingFilters,
|
|
25
|
+
values: selectedFilter.defaultFilters
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
MediaSearchFilter.propTypes = {
|
|
29
|
+
selectedFilter: PropTypes.object.isRequired,
|
|
30
|
+
updateListingFilters: PropTypes.func.isRequired,
|
|
31
|
+
listFilters: PropTypes.array.isRequired
|
|
32
|
+
};
|
|
33
|
+
export default MediaSearchFilter;
|
|
34
|
+
//# sourceMappingURL=MediaSearchFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaSearchFilter.js","names":["useQuery","React","PropTypes","getQuery","SearchFilter","MediaSearchFilter","selectedFilter","listFilters","updateListingFilters","_data$getEntitySchema","data","variables","identifier","getEntitySchemas","length","createElement","schema","setListFilters","values","defaultFilters","propTypes","object","isRequired","func","array"],"sources":["../../../src/components/FilterPanel/MediaSearchFilter.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { SearchFilter } from '@blaze-cms/plugin-data-ui';\n\nconst MediaSearchFilter = ({ selectedFilter, listFilters, updateListingFilters }) => {\n const { data } = useQuery(getQuery('GET_ENTITY_SCHEMA'), {\n variables: { identifier: 'file' }\n });\n\n const getEntitySchemas = data?.getEntitySchemas ?? [];\n\n if (!getEntitySchemas.length) return null;\n\n return (\n <SearchFilter\n schema={getEntitySchemas[0]}\n listFilters={listFilters}\n setListFilters={updateListingFilters}\n values={selectedFilter.defaultFilters}\n />\n );\n};\n\nMediaSearchFilter.propTypes = {\n selectedFilter: PropTypes.object.isRequired,\n updateListingFilters: PropTypes.func.isRequired,\n listFilters: PropTypes.array.isRequired\n};\n\nexport default MediaSearchFilter;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,QAAQ,QAAQ,2BAA2B;AACpD,SAASC,YAAY,QAAQ,2BAA2B;AAExD,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,cAAc;EAAEC,WAAW;EAAEC;AAAqB,CAAC,KAAK;EAAA,IAAAC,qBAAA;EACnF,MAAM;IAAEC;EAAK,CAAC,GAAGV,QAAQ,CAACG,QAAQ,CAAC,mBAAmB,CAAC,EAAE;IACvDQ,SAAS,EAAE;MAAEC,UAAU,EAAE;IAAO;EAClC,CAAC,CAAC;EAEF,MAAMC,gBAAgB,IAAAJ,qBAAA,GAAGC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,gBAAgB,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAErD,IAAI,CAACI,gBAAgB,CAACC,MAAM,EAAE,OAAO,IAAI;EAEzC,oBACEb,KAAA,CAAAc,aAAA,CAACX,YAAY;IACXY,MAAM,EAAEH,gBAAgB,CAAC,CAAC,CAAE;IAC5BN,WAAW,EAAEA,WAAY;IACzBU,cAAc,EAAET,oBAAqB;IACrCU,MAAM,EAAEZ,cAAc,CAACa;EAAe,CACvC,CAAC;AAEN,CAAC;AAEDd,iBAAiB,CAACe,SAAS,GAAG;EAC5Bd,cAAc,EAAEJ,SAAS,CAACmB,MAAM,CAACC,UAAU;EAC3Cd,oBAAoB,EAAEN,SAAS,CAACqB,IAAI,CAACD,UAAU;EAC/Cf,WAAW,EAAEL,SAAS,CAACsB,KAAK,CAACF;AAC/B,CAAC;AAED,eAAejB,iBAAiB","ignoreList":[]}
|
|
@@ -12,10 +12,15 @@ const Listing = ({
|
|
|
12
12
|
getSelectedFiles,
|
|
13
13
|
setDisplayFileUploadModal,
|
|
14
14
|
closeModalAndSetValue,
|
|
15
|
-
simpleLayout
|
|
15
|
+
simpleLayout,
|
|
16
|
+
openEditInModal,
|
|
17
|
+
storeKey,
|
|
18
|
+
selectedStoreKey
|
|
16
19
|
}) => /*#__PURE__*/React.createElement("div", {
|
|
17
20
|
className: "page"
|
|
18
21
|
}, displayFileUploadModal && /*#__PURE__*/React.createElement(FileUploadModal, {
|
|
22
|
+
selectedStoreKey: selectedStoreKey,
|
|
23
|
+
storeKey: storeKey,
|
|
19
24
|
onClose: () => {
|
|
20
25
|
handleDisplayFileUploadModal(false);
|
|
21
26
|
setDisplayFileUploadModal(false);
|
|
@@ -30,7 +35,7 @@ const Listing = ({
|
|
|
30
35
|
onClick: () => {
|
|
31
36
|
handleDisplayFileUploadModal(true);
|
|
32
37
|
}
|
|
33
|
-
}, "
|
|
38
|
+
}, "Upload"), /*#__PURE__*/React.createElement(More, {
|
|
34
39
|
displayBg: true
|
|
35
40
|
}, /*#__PURE__*/React.createElement(More.Avatar, {
|
|
36
41
|
isMoreMenu: true
|
|
@@ -40,19 +45,26 @@ const Listing = ({
|
|
|
40
45
|
isMoreMenu: true
|
|
41
46
|
})))), /*#__PURE__*/React.createElement("div", {
|
|
42
47
|
className: "page__content page__content--with-side-panel"
|
|
43
|
-
}, /*#__PURE__*/React.createElement(FilterPanel, null), /*#__PURE__*/React.createElement(MediaListing,
|
|
48
|
+
}, /*#__PURE__*/React.createElement(FilterPanel, null), /*#__PURE__*/React.createElement(MediaListing, {
|
|
49
|
+
openEditInModal: openEditInModal
|
|
50
|
+
}))));
|
|
44
51
|
Listing.propTypes = {
|
|
45
52
|
getSelectedFiles: PropTypes.func.isRequired,
|
|
46
53
|
handleDisplayFileUploadModal: PropTypes.func,
|
|
47
54
|
simpleLayout: PropTypes.bool,
|
|
48
55
|
setDisplayFileUploadModal: PropTypes.func.isRequired,
|
|
49
56
|
displayFileUploadModal: PropTypes.bool.isRequired,
|
|
50
|
-
closeModalAndSetValue: PropTypes.func
|
|
57
|
+
closeModalAndSetValue: PropTypes.func,
|
|
58
|
+
openEditInModal: PropTypes.bool,
|
|
59
|
+
storeKey: PropTypes.string.isRequired,
|
|
60
|
+
selectedStoreKey: PropTypes.string
|
|
51
61
|
};
|
|
52
62
|
Listing.defaultProps = {
|
|
53
63
|
closeModalAndSetValue: () => {},
|
|
54
64
|
handleDisplayFileUploadModal: () => {},
|
|
55
|
-
simpleLayout: false
|
|
65
|
+
simpleLayout: false,
|
|
66
|
+
openEditInModal: false,
|
|
67
|
+
selectedStoreKey: null
|
|
56
68
|
};
|
|
57
69
|
export default Listing;
|
|
58
70
|
//# sourceMappingURL=Listing.js.map
|