@blaze-cms/plugin-media-ui 0.146.0-node18-tooltips.32 → 0.146.0-node18-tooltips.33
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 +8 -0
- package/lib/components/CardMedia/CardMedia.js +5 -1
- package/lib/components/CardMedia/CardMedia.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFile.js +80 -37
- package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFilePage.js +46 -22
- package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib/components/FilePreview/PDF/PDF.js +19 -4
- package/lib/components/FilePreview/PDF/PDF.js.map +1 -1
- package/lib/components/FilePreview/index.js +14 -3
- package/lib/components/FilePreview/index.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/PreviewDefault.js +18 -4
- package/lib/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
- package/lib/components/FileUploadModal/FileUploadModal.js +57 -21
- package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +6 -2
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib/utils/bustUrl.js +18 -0
- package/lib/utils/bustUrl.js.map +1 -0
- package/lib-es/components/CardMedia/CardMedia.js +5 -1
- package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFile.js +72 -37
- package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js +35 -13
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- 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/index.js +10 -3
- 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/FileUploadModal/FileUploadModal.js +49 -7
- package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +6 -2
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib-es/utils/bustUrl.js +7 -0
- package/lib-es/utils/bustUrl.js.map +1 -0
- package/package.json +5 -5
- package/src/components/CardMedia/CardMedia.js +5 -1
- package/src/components/EditMediaFile/EditMediaFile.js +66 -40
- package/src/components/EditMediaFile/EditMediaFilePage.js +33 -8
- package/src/components/FilePreview/PDF/PDF.js +17 -4
- package/src/components/FilePreview/index.js +9 -3
- package/src/components/FilePreview/previewDefault/PreviewDefault.js +16 -3
- package/src/components/FileUploadModal/FileUploadModal.js +35 -14
- package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +3 -1
- package/src/utils/bustUrl.js +6 -0
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
import Button from '@blaze-react/button';
|
|
3
4
|
import { DefaultIcon } from './icons';
|
|
4
5
|
const PreviewDefault = ({
|
|
5
6
|
url,
|
|
6
7
|
name,
|
|
7
|
-
children
|
|
8
|
+
children,
|
|
9
|
+
handleChangeFile,
|
|
10
|
+
showChangeButton
|
|
8
11
|
}) => /*#__PURE__*/React.createElement("div", {
|
|
9
|
-
className: "preview"
|
|
12
|
+
className: "preview",
|
|
13
|
+
key: `default-${url}`
|
|
10
14
|
}, /*#__PURE__*/React.createElement("div", {
|
|
11
15
|
className: "preview__file preview__file--default"
|
|
12
16
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -17,11 +21,21 @@ const PreviewDefault = ({
|
|
|
17
21
|
href: url,
|
|
18
22
|
rel: "noopener noreferrer",
|
|
19
23
|
target: "_blank"
|
|
20
|
-
}, "Original"))
|
|
24
|
+
}, "Original")), showChangeButton && /*#__PURE__*/React.createElement("div", {
|
|
25
|
+
className: "preview__change-button"
|
|
26
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
27
|
+
onClick: handleChangeFile
|
|
28
|
+
}, "Change file")))), children);
|
|
21
29
|
PreviewDefault.propTypes = {
|
|
22
30
|
url: PropTypes.string.isRequired,
|
|
23
31
|
name: PropTypes.string.isRequired,
|
|
24
|
-
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
|
|
32
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
33
|
+
handleChangeFile: PropTypes.func,
|
|
34
|
+
showChangeButton: PropTypes.bool
|
|
35
|
+
};
|
|
36
|
+
PreviewDefault.defaultProps = {
|
|
37
|
+
handleChangeFile: () => {},
|
|
38
|
+
showChangeButton: false
|
|
25
39
|
};
|
|
26
40
|
export { PreviewDefault };
|
|
27
41
|
//# sourceMappingURL=PreviewDefault.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewDefault.js","names":["React","PropTypes","DefaultIcon","PreviewDefault","url","name","children","createElement","className","href","rel","target","propTypes","string","isRequired","oneOfType","arrayOf","node"],"sources":["../../../../src/components/FilePreview/previewDefault/PreviewDefault.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DefaultIcon } from './icons';\n\nconst PreviewDefault = ({ url, name, children }) => (\n <div className=\"preview\">\n <div className=\"preview__file preview__file--default\">\n <div className=\"preview__file--icon\">\n <DefaultIcon />\n <span>Preview not available</span>\n </div>\n <div className=\"preview__details preview__details--file\">\n <p>\n <strong>File details</strong>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Original\n </a>\n </p>\n </div>\n </div>\n {children}\n </div>\n);\n\nPreviewDefault.propTypes = {\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport { PreviewDefault };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,WAAW,QAAQ,SAAS;AAErC,MAAMC,cAAc,GAAGA,CAAC;EAAEC,GAAG;EAAEC,IAAI;EAAEC;
|
|
1
|
+
{"version":3,"file":"PreviewDefault.js","names":["React","PropTypes","Button","DefaultIcon","PreviewDefault","url","name","children","handleChangeFile","showChangeButton","createElement","className","key","href","rel","target","onClick","propTypes","string","isRequired","oneOfType","arrayOf","node","func","bool","defaultProps"],"sources":["../../../../src/components/FilePreview/previewDefault/PreviewDefault.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\nimport { DefaultIcon } from './icons';\n\nconst PreviewDefault = ({ url, name, children, handleChangeFile, showChangeButton }) => (\n <div className=\"preview\" key={`default-${url}`}>\n <div className=\"preview__file preview__file--default\">\n <div className=\"preview__file--icon\">\n <DefaultIcon />\n <span>Preview not available</span>\n </div>\n <div className=\"preview__details preview__details--file\">\n <p>\n <strong>File details</strong>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Original\n </a>\n </p>\n {showChangeButton && (\n <div className=\"preview__change-button\">\n <Button onClick={handleChangeFile}>Change file</Button>\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n);\n\nPreviewDefault.propTypes = {\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n handleChangeFile: PropTypes.func,\n showChangeButton: PropTypes.bool\n};\n\nPreviewDefault.defaultProps = {\n handleChangeFile: () => {},\n showChangeButton: false\n};\n\nexport { PreviewDefault };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AACxC,SAASC,WAAW,QAAQ,SAAS;AAErC,MAAMC,cAAc,GAAGA,CAAC;EAAEC,GAAG;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,gBAAgB;EAAEC;AAAiB,CAAC,kBACjFT,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC,SAAS;EAACC,GAAG,EAAE,WAAWP,GAAG;AAAG,gBAC7CL,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAsC,gBACnDX,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAqB,gBAClCX,KAAA,CAAAU,aAAA,CAACP,WAAW,MAAE,CAAC,eACfH,KAAA,CAAAU,aAAA,eAAM,uBAA2B,CAC9B,CAAC,eACNV,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAyC,gBACtDX,KAAA,CAAAU,aAAA,yBACEV,KAAA,CAAAU,aAAA,iBAAQ,cAAoB,CAAC,eAC7BV,KAAA,CAAAU,aAAA;EAAGG,IAAI,EAAER,GAAI;EAACS,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,UAErD,CACF,CAAC,EACHN,gBAAgB,iBACfT,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAwB,gBACrCX,KAAA,CAAAU,aAAA,CAACR,MAAM;EAACc,OAAO,EAAER;AAAiB,GAAC,aAAmB,CACnD,CAEJ,CACF,CAAC,EACLD,QACE,CACN;AAEDH,cAAc,CAACa,SAAS,GAAG;EACzBZ,GAAG,EAAEJ,SAAS,CAACiB,MAAM,CAACC,UAAU;EAChCb,IAAI,EAAEL,SAAS,CAACiB,MAAM,CAACC,UAAU;EACjCZ,QAAQ,EAAEN,SAAS,CAACmB,SAAS,CAAC,CAACnB,SAAS,CAACoB,OAAO,CAACpB,SAAS,CAACqB,IAAI,CAAC,EAAErB,SAAS,CAACqB,IAAI,CAAC,CAAC,CAACH,UAAU;EAC7FX,gBAAgB,EAAEP,SAAS,CAACsB,IAAI;EAChCd,gBAAgB,EAAER,SAAS,CAACuB;AAC9B,CAAC;AAEDpB,cAAc,CAACqB,YAAY,GAAG;EAC5BjB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,gBAAgB,EAAE;AACpB,CAAC;AAED,SAASL,cAAc","ignoreList":[]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
1
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
const _excluded = ["message"],
|
|
4
|
+
_excluded2 = ["message"];
|
|
2
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; }
|
|
3
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; }
|
|
4
7
|
import React, { useState } from 'react';
|
|
@@ -36,10 +39,15 @@ const FileUploadModal = ({
|
|
|
36
39
|
}
|
|
37
40
|
});
|
|
38
41
|
const handleFiles = filesToUpload => {
|
|
42
|
+
if (fileId && filesToUpload && filesToUpload.length) {
|
|
43
|
+
setFiles([filesToUpload[0]]);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
39
46
|
setFiles(filesToUpload);
|
|
40
47
|
};
|
|
41
48
|
const uploadFiles = async () => {
|
|
42
|
-
const
|
|
49
|
+
const filesToProcess = fileId && files.length ? [files[0]] : files;
|
|
50
|
+
const response = await Promise.all(filesToProcess.map(({
|
|
43
51
|
file,
|
|
44
52
|
name,
|
|
45
53
|
data,
|
|
@@ -47,7 +55,7 @@ const FileUploadModal = ({
|
|
|
47
55
|
}) => {
|
|
48
56
|
const payload = {
|
|
49
57
|
name,
|
|
50
|
-
storeKey: fileStoreKey,
|
|
58
|
+
storeKey: fileStoreKey || selectedStoreKey || storeKey,
|
|
51
59
|
data
|
|
52
60
|
};
|
|
53
61
|
if (fileId) {
|
|
@@ -68,23 +76,57 @@ const FileUploadModal = ({
|
|
|
68
76
|
appearance: 'error',
|
|
69
77
|
autoDismiss: true
|
|
70
78
|
});
|
|
79
|
+
return [];
|
|
71
80
|
});
|
|
72
81
|
const parsedResponse = response.map(({
|
|
73
82
|
data: {
|
|
74
83
|
file
|
|
75
84
|
}
|
|
76
|
-
}) =>
|
|
85
|
+
}) => {
|
|
86
|
+
const _ref = file.result || {},
|
|
87
|
+
{
|
|
88
|
+
message
|
|
89
|
+
} = _ref,
|
|
90
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
91
|
+
return rest;
|
|
92
|
+
});
|
|
77
93
|
const fileNames = files.map(({
|
|
78
94
|
file
|
|
79
95
|
}) => file.name);
|
|
80
|
-
addNewFile && addNewFile(parsedResponse);
|
|
81
|
-
const toastMessage = `Uploaded: ${fileNames.join(', ')}`;
|
|
82
96
|
if (simpleLayout) {
|
|
83
|
-
|
|
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(', ')}`;
|
|
84
124
|
getSelectedFiles(null, filesToSelect);
|
|
85
|
-
closeModalAndSetValue(simpleLayout, filesToSelect,
|
|
125
|
+
closeModalAndSetValue(simpleLayout, filesToSelect, uploadMessage);
|
|
86
126
|
return;
|
|
87
127
|
}
|
|
128
|
+
addNewFile && addNewFile(parsedResponse);
|
|
129
|
+
const toastMessage = fileId ? `Updated: ${fileNames[0]}` : `Uploaded: ${fileNames.join(', ')}`;
|
|
88
130
|
addToast(toastMessage, {
|
|
89
131
|
appearance: 'success',
|
|
90
132
|
autoDismiss: true
|
|
@@ -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","fileId","storeKey","selectedStoreKey","files","setFiles","addToast","client","addNewFile","fileStoresType","data","getFileStores","storeType","variables","visibleInAdmin","handleFiles","filesToUpload","uploadFiles","response","Promise","all","map","file","name","fileStoreKey","payload","id","filename","mutate","mutation","input","_objectSpread","catch","error","message","appearance","autoDismiss","parsedResponse","result","fileNames","toastMessage","join","filesToSelect","handleOnSave","length","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\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, storeKey: fileStoreKey }) => {\n const payload = {\n name,\n storeKey: fileStoreKey,\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: {\n input: {\n file,\n ...payload\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 && 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 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":[]}
|
|
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":[]}
|
package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js
CHANGED
|
@@ -103,7 +103,9 @@ const MediaFileList = ({
|
|
|
103
103
|
name,
|
|
104
104
|
url,
|
|
105
105
|
mimetype,
|
|
106
|
-
id
|
|
106
|
+
id,
|
|
107
|
+
data: fileData,
|
|
108
|
+
updated
|
|
107
109
|
} = data.files[index];
|
|
108
110
|
const isSelected = existPrevious(selectedFiles, id);
|
|
109
111
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -125,7 +127,9 @@ const MediaFileList = ({
|
|
|
125
127
|
id: id,
|
|
126
128
|
index: index,
|
|
127
129
|
removeFile: removeFile,
|
|
128
|
-
openEditInModal: openEditInModal
|
|
130
|
+
openEditInModal: openEditInModal,
|
|
131
|
+
data: fileData,
|
|
132
|
+
updated: updated
|
|
129
133
|
}));
|
|
130
134
|
}
|
|
131
135
|
})), displayCardPrompt && /*#__PURE__*/React.createElement(CardPrompt, null, /*#__PURE__*/React.createElement(Button, {
|
package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map
CHANGED
|
@@ -1 +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","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.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 />\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":[]}
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"bustUrl.js","names":["bustUrl","url","updated","separator","includes","version","Date","now"],"sources":["../../src/utils/bustUrl.js"],"sourcesContent":["export default function bustUrl(url, updated) {\n if (!url) return url;\n const separator = url.includes('?') ? '&' : '?';\n const version = updated || Date.now();\n return `${url}${separator}v=${version}`;\n}\n"],"mappings":"AAAA,eAAe,SAASA,OAAOA,CAACC,GAAG,EAAEC,OAAO,EAAE;EAC5C,IAAI,CAACD,GAAG,EAAE,OAAOA,GAAG;EACpB,MAAME,SAAS,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;EAC/C,MAAMC,OAAO,GAAGH,OAAO,IAAII,IAAI,CAACC,GAAG,CAAC,CAAC;EACrC,OAAO,GAAGN,GAAG,GAAGE,SAAS,KAAKE,OAAO,EAAE;AACzC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/plugin-media-ui",
|
|
3
|
-
"version": "0.146.0-node18-tooltips.
|
|
3
|
+
"version": "0.146.0-node18-tooltips.33",
|
|
4
4
|
"description": "Blaze plugin media ui",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
},
|
|
28
28
|
"license": "GPL-3.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@blaze-cms/admin-ui-utils": "0.146.0-node18-tooltips.
|
|
30
|
+
"@blaze-cms/admin-ui-utils": "0.146.0-node18-tooltips.33",
|
|
31
31
|
"@blaze-cms/core-errors": "0.146.0-node18-tooltips.0",
|
|
32
|
-
"@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.
|
|
33
|
-
"@blaze-cms/react-form-builder": "0.146.0-node18-tooltips.
|
|
32
|
+
"@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.33",
|
|
33
|
+
"@blaze-cms/react-form-builder": "0.146.0-node18-tooltips.33",
|
|
34
34
|
"@blaze-cms/setup-ui": "0.146.0-node18-tooltips.0",
|
|
35
35
|
"@blaze-react/button": "0.8.0-alpha.82",
|
|
36
36
|
"@blaze-react/dnd": "^0.7.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"lib/*",
|
|
61
61
|
"lib-es/*"
|
|
62
62
|
],
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "716b7ae2c9ac96e4515eaf2d64f9c85f6d0458d1"
|
|
64
64
|
}
|
|
@@ -11,6 +11,7 @@ import Modal from '@blaze-react/modal';
|
|
|
11
11
|
import { createPortal } from 'react-dom';
|
|
12
12
|
import { Link } from 'react-router-dom';
|
|
13
13
|
import EditMediaFile from '../EditMediaFile';
|
|
14
|
+
import bustUrl from '../../utils/bustUrl';
|
|
14
15
|
|
|
15
16
|
const CardMedia = ({
|
|
16
17
|
onSelected,
|
|
@@ -21,6 +22,7 @@ const CardMedia = ({
|
|
|
21
22
|
selected,
|
|
22
23
|
displayLayout,
|
|
23
24
|
data,
|
|
25
|
+
updated,
|
|
24
26
|
modalTargetRef,
|
|
25
27
|
updateFile,
|
|
26
28
|
removeFile,
|
|
@@ -153,7 +155,7 @@ const CardMedia = ({
|
|
|
153
155
|
|
|
154
156
|
{type === 'image' ? (
|
|
155
157
|
<div className={`card__image card__image--media-${displayLayout}`}>
|
|
156
|
-
<img src={url} alt={name} />
|
|
158
|
+
<img src={bustUrl(url, updated)} alt={name} />
|
|
157
159
|
</div>
|
|
158
160
|
) : (
|
|
159
161
|
<div className="card__image card__image--media-list-document">
|
|
@@ -220,6 +222,7 @@ CardMedia.propTypes = {
|
|
|
220
222
|
mimetype: PropTypes.string.isRequired,
|
|
221
223
|
displayLayout: PropTypes.string.isRequired,
|
|
222
224
|
data: PropTypes.object,
|
|
225
|
+
updated: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
223
226
|
onSelected: PropTypes.func,
|
|
224
227
|
updateFile: PropTypes.func.isRequired,
|
|
225
228
|
removeFile: PropTypes.func.isRequired,
|
|
@@ -233,6 +236,7 @@ CardMedia.defaultProps = {
|
|
|
233
236
|
onSelected: () => {},
|
|
234
237
|
selected: false,
|
|
235
238
|
data: {},
|
|
239
|
+
updated: null,
|
|
236
240
|
openEditInModal: false
|
|
237
241
|
};
|
|
238
242
|
|
|
@@ -10,9 +10,9 @@ import { STORE_KEY, NAME } from '../../constants';
|
|
|
10
10
|
const EditMediaFile = ({
|
|
11
11
|
onChange,
|
|
12
12
|
handleSaveButtonStatus,
|
|
13
|
-
enableSaveButton,
|
|
14
13
|
fileId,
|
|
15
|
-
showChangeButton
|
|
14
|
+
showChangeButton,
|
|
15
|
+
fileUpdated
|
|
16
16
|
}) => {
|
|
17
17
|
const [formValues, setFormValues] = useState(null);
|
|
18
18
|
const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);
|
|
@@ -25,7 +25,7 @@ const EditMediaFile = ({
|
|
|
25
25
|
refetch: refetchFile
|
|
26
26
|
} = useQuery(fileQuery, {
|
|
27
27
|
variables: { id: fileId },
|
|
28
|
-
fetchPolicy: 'network
|
|
28
|
+
fetchPolicy: 'cache-and-network'
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
const fileStoresType = getQuery('GET_FILE_STORES');
|
|
@@ -34,12 +34,24 @@ const EditMediaFile = ({
|
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
useEffect(() => {
|
|
37
|
-
if (
|
|
38
|
-
setFormValues(
|
|
37
|
+
if (file) {
|
|
38
|
+
setFormValues(prevFormValues => {
|
|
39
|
+
if (!prevFormValues || prevFormValues.updated !== file.updated) {
|
|
40
|
+
return file;
|
|
41
|
+
}
|
|
42
|
+
return prevFormValues;
|
|
43
|
+
});
|
|
39
44
|
}
|
|
40
|
-
}, [file
|
|
45
|
+
}, [file]);
|
|
46
|
+
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (fileUpdated && fileUpdated.updated) {
|
|
49
|
+
setFormValues(fileUpdated);
|
|
50
|
+
}
|
|
51
|
+
}, [fileUpdated]);
|
|
41
52
|
|
|
42
53
|
const handleFormChange = ({ isValid, isNewValueSet, valuesChecked }) => {
|
|
54
|
+
const baseFile = formValues || file;
|
|
43
55
|
const valuesCheckedWithoutName = valuesChecked.filter(
|
|
44
56
|
({ id }) => id !== NAME && id !== STORE_KEY
|
|
45
57
|
);
|
|
@@ -53,52 +65,67 @@ const EditMediaFile = ({
|
|
|
53
65
|
const { value: storeKey } = valuesChecked.find(({ id }) => id === STORE_KEY) || {};
|
|
54
66
|
|
|
55
67
|
const shouldEnableSaveButton = isNewValueSet && isValid;
|
|
56
|
-
handleSaveButtonStatus(
|
|
57
|
-
if (shouldEnableSaveButton && shouldEnableSaveButton !== enableSaveButton) {
|
|
58
|
-
handleSaveButtonStatus(shouldEnableSaveButton);
|
|
59
|
-
}
|
|
68
|
+
handleSaveButtonStatus(shouldEnableSaveButton);
|
|
60
69
|
|
|
61
70
|
const updatedFile = {
|
|
62
|
-
|
|
63
|
-
name: newFileName,
|
|
64
|
-
storeKey,
|
|
65
|
-
data: dataValues
|
|
71
|
+
...baseFile,
|
|
72
|
+
name: newFileName || baseFile.name,
|
|
73
|
+
storeKey: storeKey || baseFile.storeKey,
|
|
74
|
+
data: { ...(baseFile.data || {}), ...dataValues }
|
|
66
75
|
};
|
|
67
76
|
|
|
68
77
|
setFormValues(updatedFile);
|
|
69
|
-
onChange
|
|
78
|
+
// Strip GraphQL metadata field __typename before passing data to onChange.
|
|
79
|
+
const { __typename, ...cleanData } = updatedFile.data || {};
|
|
80
|
+
onChange({ id: updatedFile.id, name: updatedFile.name, data: cleanData });
|
|
70
81
|
};
|
|
71
82
|
|
|
72
|
-
const getFileWithStoreType =
|
|
73
|
-
|
|
83
|
+
const getFileWithStoreType = sourceFile => {
|
|
84
|
+
const base = sourceFile || file;
|
|
85
|
+
if (storeType && base) {
|
|
74
86
|
const storeOptions = storeType.map(type => [type.key, type.name]);
|
|
75
87
|
const defaultStore = storeType.find(type => type.isDefault) || null;
|
|
76
|
-
return { ...
|
|
88
|
+
return { ...base, store: { defaultStore, storeOptions } };
|
|
77
89
|
}
|
|
78
|
-
return
|
|
90
|
+
return base;
|
|
79
91
|
};
|
|
80
92
|
|
|
81
93
|
const closeModalAndSetValue = async (isSaving, values, toastMessage) => {
|
|
82
94
|
if (toastMessage) {
|
|
83
|
-
addToast(toastMessage, {
|
|
84
|
-
|
|
85
|
-
|
|
95
|
+
addToast(toastMessage, { appearance: 'success', autoDismiss: true });
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (values) {
|
|
99
|
+
const updated =
|
|
100
|
+
values.id === fileId
|
|
101
|
+
? values
|
|
102
|
+
: {
|
|
103
|
+
...(formValues || file),
|
|
104
|
+
...values,
|
|
105
|
+
url: values.url || (formValues || file).url
|
|
106
|
+
};
|
|
107
|
+
setFormValues(updated);
|
|
108
|
+
onChange(updated);
|
|
109
|
+
handleSaveButtonStatus(true);
|
|
110
|
+
} else {
|
|
111
|
+
const { data: { file: refreshedFile } = {} } = await refetchFile({
|
|
112
|
+
id: fileId,
|
|
113
|
+
timestamp: Date.now()
|
|
86
114
|
});
|
|
115
|
+
if (refreshedFile) {
|
|
116
|
+
setFormValues(refreshedFile);
|
|
117
|
+
onChange(refreshedFile);
|
|
118
|
+
handleSaveButtonStatus(true);
|
|
119
|
+
}
|
|
87
120
|
}
|
|
88
|
-
await refetchFile({
|
|
89
|
-
id: fileId,
|
|
90
|
-
timestamp: Date.now()
|
|
91
|
-
});
|
|
92
|
-
setDisplayFileUploadModal(false);
|
|
93
|
-
};
|
|
94
121
|
|
|
95
|
-
|
|
96
|
-
setDisplayFileUploadModal(true);
|
|
122
|
+
setDisplayFileUploadModal(false);
|
|
97
123
|
};
|
|
98
124
|
|
|
99
125
|
if (loading) return <div>loading...</div>;
|
|
100
126
|
|
|
101
|
-
const
|
|
127
|
+
const fileToRender = formValues || file;
|
|
128
|
+
const fileWithStoreType = getFileWithStoreType(fileToRender);
|
|
102
129
|
|
|
103
130
|
return !loading ? (
|
|
104
131
|
<>
|
|
@@ -106,7 +133,7 @@ const EditMediaFile = ({
|
|
|
106
133
|
<FilePreview
|
|
107
134
|
file={fileWithStoreType}
|
|
108
135
|
handleFormChange={handleFormChange}
|
|
109
|
-
handleChangeFile={
|
|
136
|
+
handleChangeFile={() => setDisplayFileUploadModal(true)}
|
|
110
137
|
displayForm
|
|
111
138
|
showChangeButton={showChangeButton}
|
|
112
139
|
/>
|
|
@@ -114,13 +141,12 @@ const EditMediaFile = ({
|
|
|
114
141
|
{displayFileUploadModal && (
|
|
115
142
|
<div className="file-upload-modal-wrapper">
|
|
116
143
|
<FileUploadModal
|
|
117
|
-
onClose={() =>
|
|
118
|
-
setDisplayFileUploadModal(false);
|
|
119
|
-
}}
|
|
144
|
+
onClose={() => setDisplayFileUploadModal(false)}
|
|
120
145
|
closeModalAndSetValue={closeModalAndSetValue}
|
|
121
146
|
simpleLayout
|
|
122
147
|
fileId={fileId}
|
|
123
|
-
|
|
148
|
+
storeKey={file && file.storeKey}
|
|
149
|
+
getSelectedFiles={() => { }}
|
|
124
150
|
/>
|
|
125
151
|
</div>
|
|
126
152
|
)}
|
|
@@ -134,13 +160,13 @@ EditMediaFile.propTypes = {
|
|
|
134
160
|
fileId: PropTypes.string.isRequired,
|
|
135
161
|
onChange: PropTypes.func.isRequired,
|
|
136
162
|
handleSaveButtonStatus: PropTypes.func.isRequired,
|
|
137
|
-
|
|
138
|
-
|
|
163
|
+
showChangeButton: PropTypes.bool,
|
|
164
|
+
fileUpdated: PropTypes.object
|
|
139
165
|
};
|
|
140
166
|
|
|
141
167
|
EditMediaFile.defaultProps = {
|
|
142
|
-
|
|
143
|
-
|
|
168
|
+
showChangeButton: false,
|
|
169
|
+
fileUpdated: null
|
|
144
170
|
};
|
|
145
171
|
|
|
146
172
|
export default EditMediaFile;
|
|
@@ -20,19 +20,44 @@ const EditMediaFilePage = ({ match, history }) => {
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
const handleFormSave = async () => {
|
|
23
|
+
if (!file) {
|
|
24
|
+
addToast('No file data to update', {
|
|
25
|
+
appearance: 'error',
|
|
26
|
+
autoDismiss: true
|
|
27
|
+
});
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
23
31
|
try {
|
|
24
|
-
|
|
32
|
+
const inputData = {
|
|
33
|
+
id: file.id,
|
|
34
|
+
name: file.name,
|
|
35
|
+
data: file.data,
|
|
36
|
+
storeKey: file.storeKey
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const {
|
|
40
|
+
data: { updateFile: updatedFile }
|
|
41
|
+
} = await client.mutate({
|
|
25
42
|
mutation: getMutation('UPDATE_FILE'),
|
|
26
|
-
variables: {
|
|
43
|
+
variables: {
|
|
44
|
+
input: inputData
|
|
45
|
+
},
|
|
27
46
|
update(cache, { data: { updateFile: fileUpdated } }) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
47
|
+
try {
|
|
48
|
+
cache.writeQuery({
|
|
49
|
+
query: getQuery('GET_FILE_BY_ID'),
|
|
50
|
+
variables: { id: match.params.fileId },
|
|
51
|
+
data: { file: fileUpdated.result }
|
|
52
|
+
});
|
|
53
|
+
} catch (e) {
|
|
54
|
+
console.error(e); //eslint-disable-line
|
|
55
|
+
}
|
|
33
56
|
}
|
|
34
57
|
});
|
|
35
58
|
|
|
59
|
+
setFile(updatedFile.result);
|
|
60
|
+
|
|
36
61
|
addToast(`File: ${file.name} has been updated`, {
|
|
37
62
|
appearance: 'success',
|
|
38
63
|
autoDismiss: true
|
|
@@ -42,7 +67,6 @@ const EditMediaFilePage = ({ match, history }) => {
|
|
|
42
67
|
appearance: 'error',
|
|
43
68
|
autoDismiss: true
|
|
44
69
|
});
|
|
45
|
-
console.error(e); //eslint-disable-line
|
|
46
70
|
}
|
|
47
71
|
setShouldEnableSaveButton(false);
|
|
48
72
|
};
|
|
@@ -61,6 +85,7 @@ const EditMediaFilePage = ({ match, history }) => {
|
|
|
61
85
|
handleSaveButtonStatus={handleSaveButtonStatus}
|
|
62
86
|
handleFormSave={handleFormSave}
|
|
63
87
|
showChangeButton
|
|
88
|
+
fileUpdated={file}
|
|
64
89
|
/>
|
|
65
90
|
<div className="page__content__mediaWrapperActions">
|
|
66
91
|
<Button onClick={pushBack}>Cancel</Button>
|