@blaze-cms/plugin-media-ui 0.146.0-node18-tooltips.32 → 0.146.0-node18-core-styles-tooltips.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +71 -15
  2. package/lib/components/CardMedia/CardMedia.js +5 -1
  3. package/lib/components/CardMedia/CardMedia.js.map +1 -1
  4. package/lib/components/EditMediaFile/EditMediaFile.js +80 -37
  5. package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
  6. package/lib/components/EditMediaFile/EditMediaFilePage.js +46 -22
  7. package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  8. package/lib/components/FilePreview/PDF/PDF.js +19 -4
  9. package/lib/components/FilePreview/PDF/PDF.js.map +1 -1
  10. package/lib/components/FilePreview/index.js +14 -3
  11. package/lib/components/FilePreview/index.js.map +1 -1
  12. package/lib/components/FilePreview/previewDefault/PreviewDefault.js +18 -4
  13. package/lib/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
  14. package/lib/components/FileUploadModal/FileUploadModal.js +57 -21
  15. package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
  16. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +6 -2
  17. package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  18. package/lib/utils/bustUrl.js +18 -0
  19. package/lib/utils/bustUrl.js.map +1 -0
  20. package/lib-es/components/CardMedia/CardMedia.js +5 -1
  21. package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
  22. package/lib-es/components/EditMediaFile/EditMediaFile.js +72 -37
  23. package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
  24. package/lib-es/components/EditMediaFile/EditMediaFilePage.js +35 -13
  25. package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
  26. package/lib-es/components/FilePreview/PDF/PDF.js +19 -4
  27. package/lib-es/components/FilePreview/PDF/PDF.js.map +1 -1
  28. package/lib-es/components/FilePreview/index.js +10 -3
  29. package/lib-es/components/FilePreview/index.js.map +1 -1
  30. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js +18 -4
  31. package/lib-es/components/FilePreview/previewDefault/PreviewDefault.js.map +1 -1
  32. package/lib-es/components/FileUploadModal/FileUploadModal.js +49 -7
  33. package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
  34. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +6 -2
  35. package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
  36. package/lib-es/utils/bustUrl.js +7 -0
  37. package/lib-es/utils/bustUrl.js.map +1 -0
  38. package/package.json +8 -8
  39. package/src/components/CardMedia/CardMedia.js +5 -1
  40. package/src/components/EditMediaFile/EditMediaFile.js +66 -40
  41. package/src/components/EditMediaFile/EditMediaFilePage.js +33 -8
  42. package/src/components/FilePreview/PDF/PDF.js +17 -4
  43. package/src/components/FilePreview/index.js +9 -3
  44. package/src/components/FilePreview/previewDefault/PreviewDefault.js +16 -3
  45. package/src/components/FileUploadModal/FileUploadModal.js +35 -14
  46. package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +3 -1
  47. package/src/utils/bustUrl.js +6 -0
@@ -1,15 +1,20 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import Button from '@blaze-react/button';
3
4
  const PDF = ({
4
5
  mimetype,
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: `pdf-${url}`
10
14
  }, /*#__PURE__*/React.createElement("div", {
11
15
  className: "preview__file preview__file--pdf"
12
16
  }, /*#__PURE__*/React.createElement("object", {
17
+ key: url,
13
18
  data: url,
14
19
  type: mimetype,
15
20
  className: "preview__file--pdf"
@@ -23,12 +28,22 @@ const PDF = ({
23
28
  href: url,
24
29
  rel: "noopener noreferrer",
25
30
  target: "_blank"
26
- }, "Original")))), children);
31
+ }, "Original")), showChangeButton && /*#__PURE__*/React.createElement("div", {
32
+ className: "preview__change-button"
33
+ }, /*#__PURE__*/React.createElement(Button, {
34
+ onClick: handleChangeFile
35
+ }, "Change file")))), children);
27
36
  PDF.propTypes = {
28
37
  mimetype: PropTypes.string.isRequired,
29
38
  url: PropTypes.string.isRequired,
30
39
  name: PropTypes.string.isRequired,
31
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
40
+ children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
41
+ handleChangeFile: PropTypes.func,
42
+ showChangeButton: PropTypes.bool
43
+ };
44
+ PDF.defaultProps = {
45
+ handleChangeFile: () => {},
46
+ showChangeButton: false
32
47
  };
33
48
  export { PDF };
34
49
  //# sourceMappingURL=PDF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PDF.js","names":["React","PropTypes","PDF","mimetype","url","name","children","createElement","className","data","type","href","rel","target","propTypes","string","isRequired","oneOfType","arrayOf","node"],"sources":["../../../../src/components/FilePreview/PDF/PDF.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst PDF = ({ mimetype, url, name, children }) => (\n <div className=\"preview\">\n <div className=\"preview__file preview__file--pdf\">\n <object data={url} type={mimetype} className=\"preview__file--pdf\">\n <p>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Download {name}\n </a>\n </p>\n </object>\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\nPDF.propTypes = {\n mimetype: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport { PDF };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,MAAMC,GAAG,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,GAAG;EAAEC,IAAI;EAAEC;AAAS,CAAC,kBAC5CN,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAS,gBACtBR,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAkC,gBAC/CR,KAAA,CAAAO,aAAA;EAAQE,IAAI,EAAEL,GAAI;EAACM,IAAI,EAAEP,QAAS;EAACK,SAAS,EAAC;AAAoB,gBAC/DR,KAAA,CAAAO,aAAA,yBACEP,KAAA,CAAAO,aAAA;EAAGI,IAAI,EAAEP,GAAI;EAACQ,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,WAC7C,EAACR,IACT,CACF,CACG,CAAC,eACTL,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAyC,gBACtDR,KAAA,CAAAO,aAAA,yBACEP,KAAA,CAAAO,aAAA,iBAAQ,cAAoB,CAAC,eAC7BP,KAAA,CAAAO,aAAA;EAAGI,IAAI,EAAEP,GAAI;EAACQ,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,UAErD,CACF,CACA,CACF,CAAC,EACLP,QACE,CACN;AAEDJ,GAAG,CAACY,SAAS,GAAG;EACdX,QAAQ,EAAEF,SAAS,CAACc,MAAM,CAACC,UAAU;EACrCZ,GAAG,EAAEH,SAAS,CAACc,MAAM,CAACC,UAAU;EAChCX,IAAI,EAAEJ,SAAS,CAACc,MAAM,CAACC,UAAU;EACjCV,QAAQ,EAAEL,SAAS,CAACgB,SAAS,CAAC,CAAChB,SAAS,CAACiB,OAAO,CAACjB,SAAS,CAACkB,IAAI,CAAC,EAAElB,SAAS,CAACkB,IAAI,CAAC,CAAC,CAACH;AACrF,CAAC;AAED,SAASd,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"PDF.js","names":["React","PropTypes","Button","PDF","mimetype","url","name","children","handleChangeFile","showChangeButton","createElement","className","key","data","type","href","rel","target","onClick","propTypes","string","isRequired","oneOfType","arrayOf","node","func","bool","defaultProps"],"sources":["../../../../src/components/FilePreview/PDF/PDF.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\n\nconst PDF = ({ mimetype, url, name, children, handleChangeFile, showChangeButton }) => (\n <div className=\"preview\" key={`pdf-${url}`}>\n <div className=\"preview__file preview__file--pdf\">\n <object key={url} data={url} type={mimetype} className=\"preview__file--pdf\">\n <p>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Download {name}\n </a>\n </p>\n </object>\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\nPDF.propTypes = {\n mimetype: PropTypes.string.isRequired,\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\nPDF.defaultProps = {\n handleChangeFile: () => {},\n showChangeButton: false\n};\n\nexport { PDF };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAExC,MAAMC,GAAG,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,GAAG;EAAEC,IAAI;EAAEC,QAAQ;EAAEC,gBAAgB;EAAEC;AAAiB,CAAC,kBAChFT,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC,SAAS;EAACC,GAAG,EAAE,OAAOP,GAAG;AAAG,gBACzCL,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAkC,gBAC/CX,KAAA,CAAAU,aAAA;EAAQE,GAAG,EAAEP,GAAI;EAACQ,IAAI,EAAER,GAAI;EAACS,IAAI,EAAEV,QAAS;EAACO,SAAS,EAAC;AAAoB,gBACzEX,KAAA,CAAAU,aAAA,yBACEV,KAAA,CAAAU,aAAA;EAAGK,IAAI,EAAEV,GAAI;EAACW,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,WAC7C,EAACX,IACT,CACF,CACG,CAAC,eACTN,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAyC,gBACtDX,KAAA,CAAAU,aAAA,yBACEV,KAAA,CAAAU,aAAA,iBAAQ,cAAoB,CAAC,eAC7BV,KAAA,CAAAU,aAAA;EAAGK,IAAI,EAAEV,GAAI;EAACW,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,UAErD,CACF,CAAC,EACHR,gBAAgB,iBACfT,KAAA,CAAAU,aAAA;EAAKC,SAAS,EAAC;AAAwB,gBACrCX,KAAA,CAAAU,aAAA,CAACR,MAAM;EAACgB,OAAO,EAAEV;AAAiB,GAAC,aAAmB,CACnD,CAEJ,CACF,CAAC,EACLD,QACE,CACN;AAEDJ,GAAG,CAACgB,SAAS,GAAG;EACdf,QAAQ,EAAEH,SAAS,CAACmB,MAAM,CAACC,UAAU;EACrChB,GAAG,EAAEJ,SAAS,CAACmB,MAAM,CAACC,UAAU;EAChCf,IAAI,EAAEL,SAAS,CAACmB,MAAM,CAACC,UAAU;EACjCd,QAAQ,EAAEN,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,OAAO,CAACtB,SAAS,CAACuB,IAAI,CAAC,EAAEvB,SAAS,CAACuB,IAAI,CAAC,CAAC,CAACH,UAAU;EAC7Fb,gBAAgB,EAAEP,SAAS,CAACwB,IAAI;EAChChB,gBAAgB,EAAER,SAAS,CAACyB;AAC9B,CAAC;AAEDvB,GAAG,CAACwB,YAAY,GAAG;EACjBnB,gBAAgB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC1BC,gBAAgB,EAAE;AACpB,CAAC;AAED,SAASN,GAAG","ignoreList":[]}
@@ -21,8 +21,15 @@ const FilePreview = ({
21
21
  url,
22
22
  mimetype,
23
23
  data,
24
- store
24
+ store,
25
+ updated
25
26
  } = file;
27
+ const bustUrl = (srcUrl, version) => {
28
+ if (!srcUrl) return srcUrl;
29
+ const sep = srcUrl.includes('?') ? '&' : '?';
30
+ return `${srcUrl}${sep}v=${version || Date.now()}`;
31
+ };
32
+ const displayUrl = bustUrl(url, updated);
26
33
  const [Preview, schema] = getPreview({
27
34
  mimetype,
28
35
  previewType
@@ -44,11 +51,11 @@ const FilePreview = ({
44
51
  }
45
52
  }
46
53
  const formBuilderData = {
47
- values: _objectSpread(_objectSpread({}, file), data)
54
+ values: _objectSpread(_objectSpread({}, data), file)
48
55
  };
49
56
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Preview, _extends({
50
57
  mimetype: mimetype,
51
- url: url,
58
+ url: displayUrl,
52
59
  name: name
53
60
  }, data, {
54
61
  file: file,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","FormBuilder","PropTypes","getPreview","FilePreview","file","handleFormChange","displayForm","previewType","children","handleChangeFile","showChangeButton","disableFilePreview","name","url","mimetype","data","store","Preview","schema","shouldRenderForm","defaultStore","storeOptions","formSchema","properties","storeKey","options","key","selected","formBuilderData","values","_objectSpread","createElement","Fragment","_extends","className","filename","formClassName","onChange","availablePreviewTypes","card","raw","propTypes","object","isRequired","fileName","string","func","bool","handlers","oneOf","Object","keys","oneOfType","array","defaultProps"],"sources":["../../../src/components/FilePreview/index.js"],"sourcesContent":["import React from 'react';\nimport { FormBuilder } from '@blaze-cms/react-form-builder';\nimport PropTypes from 'prop-types';\nimport { getPreview } from './get-preview';\n\nconst FilePreview = ({\n file,\n handleFormChange,\n displayForm,\n previewType,\n children,\n handleChangeFile,\n showChangeButton,\n disableFilePreview\n}) => {\n const { name, url, mimetype, data, store } = file;\n const [Preview, schema] = getPreview({ mimetype, previewType });\n const shouldRenderForm = schema && displayForm;\n\n if (shouldRenderForm && store) {\n const { defaultStore = {}, storeOptions = [] } = store;\n if (schema.formSchema.properties.storeKey) {\n schema.formSchema.properties.storeKey.options = storeOptions;\n if (defaultStore) {\n const { key } = defaultStore;\n schema.formSchema.properties.storeKey.selected = key;\n }\n }\n }\n\n const formBuilderData = { values: { ...file, ...data } };\n\n return (\n <>\n <Preview\n mimetype={mimetype}\n url={url}\n name={name}\n {...data}\n file={file}\n handleChangeFile={handleChangeFile}\n disableFilePreview={disableFilePreview}\n showChangeButton={showChangeButton}>\n {shouldRenderForm && (\n <div className=\"preview__details\">\n <div className=\"preview__filename\">{file.filename}</div>\n <FormBuilder\n formClassName=\"preview__form\"\n onChange={handleFormChange}\n data={formBuilderData}\n schema={schema.formSchema}\n />\n </div>\n )}\n </Preview>\n {children}\n </>\n );\n};\n\nFilePreview.availablePreviewTypes = {\n card: 'card',\n raw: 'raw'\n};\n\nFilePreview.propTypes = {\n file: PropTypes.object.isRequired,\n fileName: PropTypes.string,\n handleFormChange: PropTypes.func,\n handleChangeFile: PropTypes.func,\n displayForm: PropTypes.bool,\n handlers: PropTypes.object,\n previewType: PropTypes.oneOf(Object.keys(FilePreview.availablePreviewTypes)),\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n showChangeButton: PropTypes.bool,\n disableFilePreview: PropTypes.bool\n};\n\nFilePreview.defaultProps = {\n displayForm: false,\n fileName: '',\n handlers: {},\n previewType: FilePreview.availablePreviewTypes.card,\n handleFormChange: () => {},\n handleChangeFile: () => {},\n children: [],\n showChangeButton: false,\n disableFilePreview: true\n};\n\nexport default FilePreview;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","FormBuilder","PropTypes","getPreview","FilePreview","file","handleFormChange","displayForm","previewType","children","handleChangeFile","showChangeButton","disableFilePreview","name","url","mimetype","data","store","updated","bustUrl","srcUrl","version","sep","includes","Date","now","displayUrl","Preview","schema","shouldRenderForm","defaultStore","storeOptions","formSchema","properties","storeKey","options","key","selected","formBuilderData","values","_objectSpread","createElement","Fragment","_extends","className","filename","formClassName","onChange","availablePreviewTypes","card","raw","propTypes","object","isRequired","fileName","string","func","bool","handlers","oneOf","Object","keys","oneOfType","array","defaultProps"],"sources":["../../../src/components/FilePreview/index.js"],"sourcesContent":["import React from 'react';\nimport { FormBuilder } from '@blaze-cms/react-form-builder';\nimport PropTypes from 'prop-types';\nimport { getPreview } from './get-preview';\n\nconst FilePreview = ({\n file,\n handleFormChange,\n displayForm,\n previewType,\n children,\n handleChangeFile,\n showChangeButton,\n disableFilePreview\n}) => {\n const { name, url, mimetype, data, store, updated } = file;\n const bustUrl = (srcUrl, version) => {\n if (!srcUrl) return srcUrl;\n const sep = srcUrl.includes('?') ? '&' : '?';\n return `${srcUrl}${sep}v=${version || Date.now()}`;\n };\n const displayUrl = bustUrl(url, updated);\n const [Preview, schema] = getPreview({ mimetype, previewType });\n const shouldRenderForm = schema && displayForm;\n\n if (shouldRenderForm && store) {\n const { defaultStore = {}, storeOptions = [] } = store;\n if (schema.formSchema.properties.storeKey) {\n schema.formSchema.properties.storeKey.options = storeOptions;\n if (defaultStore) {\n const { key } = defaultStore;\n schema.formSchema.properties.storeKey.selected = key;\n }\n }\n }\n\n const formBuilderData = { values: { ...data, ...file } };\n\n return (\n <>\n <Preview\n mimetype={mimetype}\n url={displayUrl}\n name={name}\n {...data}\n file={file}\n handleChangeFile={handleChangeFile}\n disableFilePreview={disableFilePreview}\n showChangeButton={showChangeButton}>\n {shouldRenderForm && (\n <div className=\"preview__details\">\n <div className=\"preview__filename\">{file.filename}</div>\n <FormBuilder\n formClassName=\"preview__form\"\n onChange={handleFormChange}\n data={formBuilderData}\n schema={schema.formSchema}\n />\n </div>\n )}\n </Preview>\n {children}\n </>\n );\n};\n\nFilePreview.availablePreviewTypes = {\n card: 'card',\n raw: 'raw'\n};\n\nFilePreview.propTypes = {\n file: PropTypes.object.isRequired,\n fileName: PropTypes.string,\n handleFormChange: PropTypes.func,\n handleChangeFile: PropTypes.func,\n displayForm: PropTypes.bool,\n handlers: PropTypes.object,\n previewType: PropTypes.oneOf(Object.keys(FilePreview.availablePreviewTypes)),\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n showChangeButton: PropTypes.bool,\n disableFilePreview: PropTypes.bool\n};\n\nFilePreview.defaultProps = {\n displayForm: false,\n fileName: '',\n handlers: {},\n previewType: FilePreview.availablePreviewTypes.card,\n handleFormChange: () => {},\n handleChangeFile: () => {},\n children: [],\n showChangeButton: false,\n disableFilePreview: true\n};\n\nexport default FilePreview;\n"],"mappings":"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","ignoreList":[]}
@@ -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")))), children);
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;AAAS,CAAC,kBAC7CN,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAS,gBACtBR,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAsC,gBACnDR,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAqB,gBAClCR,KAAA,CAAAO,aAAA,CAACL,WAAW,MAAE,CAAC,eACfF,KAAA,CAAAO,aAAA,eAAM,uBAA2B,CAC9B,CAAC,eACNP,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAAyC,gBACtDR,KAAA,CAAAO,aAAA,yBACEP,KAAA,CAAAO,aAAA,iBAAQ,cAAoB,CAAC,eAC7BP,KAAA,CAAAO,aAAA;EAAGE,IAAI,EAAEL,GAAI;EAACM,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,UAErD,CACF,CACA,CACF,CAAC,EACLL,QACE,CACN;AAEDH,cAAc,CAACS,SAAS,GAAG;EACzBR,GAAG,EAAEH,SAAS,CAACY,MAAM,CAACC,UAAU;EAChCT,IAAI,EAAEJ,SAAS,CAACY,MAAM,CAACC,UAAU;EACjCR,QAAQ,EAAEL,SAAS,CAACc,SAAS,CAAC,CAACd,SAAS,CAACe,OAAO,CAACf,SAAS,CAACgB,IAAI,CAAC,EAAEhB,SAAS,CAACgB,IAAI,CAAC,CAAC,CAACH;AACrF,CAAC;AAED,SAASX,cAAc","ignoreList":[]}
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 response = await Promise.all(files.map(({
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
- }) => file.result);
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
- const filesToSelect = parsedResponse.map(file => file.id);
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, toastMessage);
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":";;;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;EACvBC,OAAO;EACPC,gBAAgB;EAChBC,qBAAqB;EACrBC,YAAY;EACZC,MAAM;EACNC,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGpB,QAAQ,CAAC,EAAE,CAAC;EACtC,MAAM;IAAEqB;EAAS,CAAC,GAAGd,SAAS,CAAC,CAAC;EAChC,MAAMe,MAAM,GAAGd,eAAe,CAAC,CAAC;EAChC,MAAM;IAAEe;EAAW,CAAC,GAAGb,WAAW,CAAC,CAAC;EAEpC,MAAMc,cAAc,GAAGpB,QAAQ,CAAC,iBAAiB,CAAC;EAElD,MAAM;IAAEqB,IAAI,EAAE;MAAEC,aAAa,EAAEC,SAAS,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGlB,QAAQ,CAACe,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;MAAER,QAAQ,EAAEsB;IAAa,CAAC,KAAK;MAC1D,MAAMC,OAAO,GAAG;QACdF,IAAI;QACJrB,QAAQ,EAAEsB,YAAY;QACtBd;MACF,CAAC;MACD,IAAIT,MAAM,EAAE;QACVwB,OAAO,CAACC,EAAE,GAAGzB,MAAM;MACrB,CAAC,MAAM,IAAI,CAACsB,IAAI,EAAE;QAChBE,OAAO,CAACF,IAAI,GAAGD,IAAI,CAACK,QAAQ;MAC9B;MACA,OAAOpB,MAAM,CAACqB,MAAM,CAAC;QACnBC,QAAQ,EAAEzC,WAAW,CAAC,aAAa,CAAC;QACpCyB,SAAS,EAAE;UACTiB,KAAK,EAAAC,aAAA;YACHT;UAAI,GACDG,OAAO;QAEd;MACF,CAAC,CAAC;IACJ,CAAC,CACH,CAAC,CAACO,KAAK,CAACC,KAAK,IAAI;MACf3B,QAAQ,CAAC2B,KAAK,CAACC,OAAO,EAAE;QACtBC,UAAU,EAAE,OAAO;QACnBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMC,cAAc,GAAGnB,QAAQ,CAACG,GAAG,CAAC,CAAC;MAAEX,IAAI,EAAE;QAAEY;MAAK;IAAE,CAAC,KAAKA,IAAI,CAACgB,MAAM,CAAC;IAExE,MAAMC,SAAS,GAAGnC,KAAK,CAACiB,GAAG,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKA,IAAI,CAACC,IAAI,CAAC;IACpDf,UAAU,IAAIA,UAAU,CAAC6B,cAAc,CAAC;IACxC,MAAMG,YAAY,GAAG,aAAaD,SAAS,CAACE,IAAI,CAAC,IAAI,CAAC,EAAE;IAExD,IAAIzC,YAAY,EAAE;MAChB,MAAM0C,aAAa,GAAGL,cAAc,CAAChB,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACI,EAAE,CAAC;MACzD5B,gBAAgB,CAAC,IAAI,EAAE4C,aAAa,CAAC;MACrC3C,qBAAqB,CAACC,YAAY,EAAE0C,aAAa,EAAEF,YAAY,CAAC;MAChE;IACF;IAEAlC,QAAQ,CAACkC,YAAY,EAAE;MACrBL,UAAU,EAAE,SAAS;MACrBC,WAAW,EAAE;IACf,CAAC,CAAC;EACJ,CAAC;EAED,MAAMO,YAAY,GAAG,MAAAA,CAAA,KAAY;IAC/B,IAAIvC,KAAK,CAACwC,MAAM,EAAE,MAAM3B,WAAW,CAAC,CAAC;IACrCpB,OAAO,CAAC,CAAC;EACX,CAAC;EAED,IAAIgD,YAAY,GAAGjC,SAAS,CAACS,GAAG,CAACyB,IAAI,IAAI,CAACA,IAAI,CAACC,GAAG,EAAED,IAAI,CAACvB,IAAI,CAAC,CAAC;EAC/DsB,YAAY,GAAG3C,QAAQ,GAAG2C,YAAY,CAACG,MAAM,CAAC,CAAC,CAACD,GAAG,CAAC,KAAKA,GAAG,KAAK7C,QAAQ,CAAC,GAAG2C,YAAY;EAEzF,oBACE7D,KAAA,CAAAiE,aAAA,CAAC9D,KAAK;IACJU,OAAO,EAAEA,OAAQ;IACjBqD,KAAK,EAAC,WAAW;IACjBC,OAAO,EAAE,CACP;MACEC,UAAU,EAAE,QAAQ;MACpBC,QAAQ,EAAExD,OAAO;MACjByD,SAAS,EAAE,CAAC,QAAQ;IACtB,CAAC,EACD;MACEF,UAAU,EAAE,QAAQ;MACpBC,QAAQ,EAAEV,YAAY;MACtBW,SAAS,EAAE;IACb,CAAC,CACD;IACFC,MAAM;EAAA,gBACNvE,KAAA,CAAAiE,aAAA,CAAC3D,UAAU;IACTY,QAAQ,EAAEC,gBAAgB,IAAID,QAAS;IACvCsD,QAAQ,EAAEzC,WAAY;IACtB0C,aAAa,EAAEZ;EAAa,CAC7B,CACI,CAAC;AAEZ,CAAC;AAEDjD,eAAe,CAAC8D,SAAS,GAAG;EAC1BzD,MAAM,EAAEV,SAAS,CAACoE,MAAM;EACxB7D,gBAAgB,EAAEP,SAAS,CAACqE,IAAI,CAACC,UAAU;EAC3ChE,OAAO,EAAEN,SAAS,CAACqE,IAAI;EACvB5D,YAAY,EAAET,SAAS,CAACuE,IAAI;EAC5B/D,qBAAqB,EAAER,SAAS,CAACqE,IAAI;EACrC1D,QAAQ,EAAEX,SAAS,CAACoE,MAAM;EAC1BxD,gBAAgB,EAAEZ,SAAS,CAACoE;AAC9B,CAAC;AAED/D,eAAe,CAACmE,YAAY,GAAG;EAC7BlE,OAAO,EAAEA,CAAA,KAAM,CAAE,CAAC;EAClBE,qBAAqB,EAAEA,CAAA,KAAM,CAAE,CAAC;EAChCC,YAAY,EAAE,KAAK;EACnBC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,gBAAgB,EAAE;AACpB,CAAC;AAED,eAAeP,eAAe","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":[]}
@@ -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, {
@@ -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":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,OAAOC,MAAM,MAAM,qBAAqB;AACxC,OAAOC,WAAW,MAAM,yBAAyB;AACjD,SAASC,eAAe,EAAEC,YAAY,QAAQ,oCAAoC;AAClF,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,SAASC,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,WAAW,MAAM,kCAAkC;AAC1D,SACEC,oBAAoB,EACpBC,qBAAqB,EACrBC,sBAAsB,QACjB,0BAA0B;AAEjC,MAAMC,aAAa,GAAGA,CAAC;EACrBC,iBAAiB;EACjBC,oBAAoB;EACpBC,aAAa;EACbC,UAAU;EACVC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGtB,QAAQ,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACuB,cAAc,EAAEC,iBAAiB,CAAC,GAAGxB,QAAQ,CAAC,EAAE,CAAC;EACxD,MAAM,CAACyB,UAAU,EAAEC,aAAa,CAAC,GAAG1B,QAAQ,CAAC,IAAI,CAAC;EAClD,MAAM;IAAE2B,WAAW;IAAEC,IAAI;IAAEC,OAAO;IAAEC,cAAc;IAAEC,SAAS;IAAEC,UAAU;IAAEC;EAAW,CAAC,GACrFvB,WAAW,CAAC,CAAC;EAEf,MAAM;IAAEwB,aAAa;IAAEC,gBAAgB;IAAEC,aAAa;IAAEC;EAAe,CAAC,GACtE/B,eAAe,CAACC,YAAY,CAAC;EAE/B,MAAM+B,QAAQ,GAAG,CAAC,CAACV,IAAI,CAACW,KAAK,IAAI,CAAC,CAACX,IAAI,CAACW,KAAK,CAACC,MAAM;EAEpDvC,SAAS,CAAC,MAAM;IACd,IAAI,CAAC4B,OAAO,IAAI,CAACS,QAAQ,EAAEtB,oBAAoB,CAAC,IAAI,CAAC;EACvD,CAAC,EAAE,CAACa,OAAO,EAAES,QAAQ,EAAEtB,oBAAoB,CAAC,CAAC;EAE7Cf,SAAS,CACP,MAAM;IACJuB,iBAAiB,CAAC,EAAE,CAAC;IACrBF,mBAAmB,CAAC,CAAC,CAAC;IACtBQ,cAAc,CAAC;MACbW,KAAK,EAAAC,aAAA,CAAAA,aAAA,KACA7B,sBAAsB,CAACwB,cAAc,CAACM,MAAM,CAAC;QAChDC,QAAQ,EAAEP,cAAc,CAACO;MAAQ,EAClC;MACDC,QAAQ,EAAER,cAAc,CAACQ,QAAQ;MACjCC,UAAU,EAAET,cAAc,CAACS;IAC7B,CAAC,CAAC;EACJ,CAAC;EACD;EACA,CACET,cAAc,CAACM,MAAM,EACrBN,cAAc,CAACO,QAAQ,EACvBP,cAAc,CAACQ,QAAQ,EACvBR,cAAc,CAACS,UAAU,CAE7B,CAAC;EAED,MAAMC,mBAAmB,GAAGA,CAAC;IAAEC;EAAW,CAAC,KAAK;IAC9C,MAAMC,UAAU,GAAGrB,IAAI,CAACW,KAAK,CAACC,MAAM;IACpC,MAAMU,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACH,UAAU,GAAG,CAAC,CAAC,GAAGrC,qBAAqB;IAEpE,IAAIsC,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAGF,UAAU,IAAI,CAACzB,cAAc,CAAC8B,QAAQ,CAACH,SAAS,CAAC,EAAE;MAClFpB,cAAc,CAAC;QACbwB,MAAM,EAAE1B,IAAI,CAACW,KAAK,CAACC,MAAM;QACzBC,KAAK,EAAAC,aAAA,CAAAA,aAAA,KACA7B,sBAAsB,CAACwB,cAAc,CAACM,MAAM,CAAC;UAChDC,QAAQ,EAAEP,cAAc,CAACO;QAAQ,EAClC;QACDC,QAAQ,EAAER,cAAc,CAACQ,QAAQ;QACjCC,UAAU,EAAET,cAAc,CAACS;MAC7B,CAAC,CAAC;MACFtB,iBAAiB,CAAC,CAAC,GAAGD,cAAc,EAAE2B,SAAS,CAAC,CAAC;MACjD5B,mBAAmB,CAAC0B,UAAU,GAAGpC,qBAAqB,CAAC;IACzD;EACF,CAAC;EAEDX,SAAS,CAAC,MAAM;IACd,MAAMsD,gBAAgB,GAAGA,CAAA,KAAM;MAC7B7B,aAAa,CAACR,UAAU,CAACsC,OAAO,CAACC,YAAY,GAAG,EAAE,CAAC;IACrD,CAAC;IAED,IAAIvC,UAAU,CAACsC,OAAO,EAAE;MACtBD,gBAAgB,CAAC,CAAC;MAClBG,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC;IACrD;IACA,OAAO,MAAM;MACXG,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAAC9B,UAAU,EAAEP,UAAU,CAAC,CAAC;EAE5B,MAAM2C,YAAY,GAAGlC,WAAW,CAACmB,UAAU,IAAI,GAAGnB,WAAW,CAACmB,UAAU,IAAI;EAE5E,oBACE/C,KAAA,CAAA+D,aAAA,CAAA/D,KAAA,CAAAgE,QAAA,QACGzB,QAAQ,iBACPvC,KAAA,CAAA+D,aAAA,CAAA/D,KAAA,CAAAgE,QAAA,qBACEhE,KAAA,CAAA+D,aAAA;IAAGE,SAAS,EAAC;EAAyB,GACnCH,YAAY,EAAC,GAAC,EAACjC,IAAI,CAACS,cAAc,CAACM,MAAM,CAAC,EAAC,QAC3C,CAAC,eACJ5C,KAAA,CAAA+D,aAAA,CAACzD,WAAW;IACV4D,KAAK,EAAC,MAAM;IACZC,MAAM,EAAEzC,UAAW;IACnB0C,SAAS,EAAEvC,IAAI,CAACW,KAAK,CAACC,MAAO;IAC7B4B,QAAQ,EAAEzD,oBAAqB;IAC/B0D,aAAa,EAAEzD,qBAAsB;IACrC0D,aAAa,EAAEjD,gBAAiB;IAChCkD,eAAe,EAAExB,mBAAoB;IACrCyB,UAAU,EAAEA,CAAC;MAAEC,KAAK;MAAEC;IAAM,CAAC,KAAK;MAChC,MAAM;QAAEC,IAAI;QAAEC,GAAG;QAAEC,QAAQ;QAAEC;MAAG,CAAC,GAAGlD,IAAI,CAACW,KAAK,CAACkC,KAAK,CAAC;MACrD,MAAMM,UAAU,GAAGtE,aAAa,CAAC2B,aAAa,EAAE0C,EAAE,CAAC;MACnD,oBACE/E,KAAA,CAAA+D,aAAA;QAAKkB,GAAG,EAAEP,KAAM;QAACC,KAAK,EAAEA,KAAM;QAACV,SAAS,EAAC;MAA2B,gBAClEjE,KAAA,CAAA+D,aAAA,CAACtD,SAAS;QACRyB,UAAU,EAAEA,UAAW;QACvBF,SAAS,EAAEA,SAAU;QACrBkD,0BAA0B,EAAEtD,WAAY;QACxCR,cAAc,EAAEA,cAAe;QAC/B+D,UAAU,EAAE/C,gBAAiB;QAC7B6C,GAAG,EAAEF,EAAG;QACR7D,aAAa,EAAEA,aAAc;QAC7BkE,QAAQ,EAAE,CAAC,CAACJ,UAAW;QACvBJ,IAAI,EAAEA,IAAK;QACXC,GAAG,EAAEA,GAAI;QACTC,QAAQ,EAAEA,QAAS;QACnBC,EAAE,EAAEA,EAAG;QACPL,KAAK,EAAEA,KAAM;QACbzC,UAAU,EAAEA,UAAW;QACvBZ,eAAe,EAAEA;MAAgB,CAClC,CACE,CAAC;IAEV;EAAE,CACH,CACD,CACH,EACAL,iBAAiB,iBAChBhB,KAAA,CAAA+D,aAAA,CAAC3D,UAAU,qBACTJ,KAAA,CAAA+D,aAAA,CAAC1D,MAAM;IAACgF,OAAO,EAAElD,aAAc;IAAC8B,SAAS,EAAC;EAAoC,GAAC,QAEvE,CACE,CAEd,CAAC;AAEP,CAAC;AAEDlD,aAAa,CAACuE,SAAS,GAAG;EACxBrE,oBAAoB,EAAEd,SAAS,CAACoF,IAAI,CAACC,UAAU;EAC/CxE,iBAAiB,EAAEb,SAAS,CAACsF,IAAI;EACjCvE,aAAa,EAAEf,SAAS,CAACuF,MAAM,CAACF,UAAU;EAC1CrE,UAAU,EAAEhB,SAAS,CAACwF,MAAM,CAACH,UAAU;EACvCpE,cAAc,EAAEjB,SAAS,CAACwF,MAAM,CAACH,UAAU;EAC3CnE,eAAe,EAAElB,SAAS,CAACsF;AAC7B,CAAC;AAED1E,aAAa,CAAC6E,YAAY,GAAG;EAC3B5E,iBAAiB,EAAE,IAAI;EACvBK,eAAe,EAAE;AACnB,CAAC;AAED,eAAeN,aAAa","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,7 @@
1
+ export default function bustUrl(url, updated) {
2
+ if (!url) return url;
3
+ const separator = url.includes('?') ? '&' : '?';
4
+ const version = updated || Date.now();
5
+ return `${url}${separator}v=${version}`;
6
+ }
7
+ //# sourceMappingURL=bustUrl.js.map
@@ -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.32",
3
+ "version": "0.146.0-node18-core-styles-tooltips.41",
4
4
  "description": "Blaze plugin media ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -27,11 +27,11 @@
27
27
  },
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
- "@blaze-cms/admin-ui-utils": "0.146.0-node18-tooltips.32",
31
- "@blaze-cms/core-errors": "0.146.0-node18-tooltips.0",
32
- "@blaze-cms/plugin-search-ui": "0.146.0-node18-tooltips.32",
33
- "@blaze-cms/react-form-builder": "0.146.0-node18-tooltips.32",
34
- "@blaze-cms/setup-ui": "0.146.0-node18-tooltips.0",
30
+ "@blaze-cms/admin-ui-utils": "0.146.0-node18-core-styles-tooltips.41",
31
+ "@blaze-cms/core-errors": "0.146.0-node18-core-styles-tooltips.3",
32
+ "@blaze-cms/plugin-search-ui": "0.146.0-node18-core-styles-tooltips.41",
33
+ "@blaze-cms/react-form-builder": "0.146.0-node18-core-styles-tooltips.41",
34
+ "@blaze-cms/setup-ui": "0.146.0-node18-core-styles-tooltips.3",
35
35
  "@blaze-react/button": "0.8.0-alpha.82",
36
36
  "@blaze-react/dnd": "^0.7.0",
37
37
  "@blaze-react/drafteditor": "0.7.0",
@@ -47,7 +47,7 @@
47
47
  "react-tiny-virtual-list": "2.2.0"
48
48
  },
49
49
  "devDependencies": {
50
- "@blaze-cms/core-ui": "0.146.0-node18-tooltips.32"
50
+ "@blaze-cms/core-ui": "0.146.0-node18-core-styles-tooltips.38"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@apollo/client": "3.x",
@@ -60,5 +60,5 @@
60
60
  "lib/*",
61
61
  "lib-es/*"
62
62
  ],
63
- "gitHead": "1955dabbe3de0e3617e06d605753571807161240"
63
+ "gitHead": "ef33d6731843b4197118098cacf51e5034d4858b"
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