@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
@@ -137,7 +137,9 @@ var MediaFileList = function MediaFileList(_ref) {
137
137
  name = _data$files$index.name,
138
138
  url = _data$files$index.url,
139
139
  mimetype = _data$files$index.mimetype,
140
- id = _data$files$index.id;
140
+ id = _data$files$index.id,
141
+ fileData = _data$files$index.data,
142
+ updated = _data$files$index.updated;
141
143
  var isSelected = (0, _mappers.existPrevious)(selectedFiles, id);
142
144
  return /*#__PURE__*/_react["default"].createElement("div", {
143
145
  key: index,
@@ -158,7 +160,9 @@ var MediaFileList = function MediaFileList(_ref) {
158
160
  id: id,
159
161
  index: index,
160
162
  removeFile: removeFile,
161
- openEditInModal: openEditInModal
163
+ openEditInModal: openEditInModal,
164
+ data: fileData,
165
+ updated: updated
162
166
  }));
163
167
  }
164
168
  })), displayCardPrompt && /*#__PURE__*/_react["default"].createElement(_admin.CardPrompt, null, /*#__PURE__*/_react["default"].createElement(_button["default"], {
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFileList.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_admin","_button","_reactTinyVirtualList","_mediaContext","_CardMedia","_mappers","_useFileList2","_constants","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","MediaFileList","_ref","displayCardPrompt","setDisplayCardPrompt","displayLayout","wrapperRef","modalTargetRef","openEditInModal","_useState","useState","_useState2","_slicedToArray2","currentListIndex","setCurrentListIndex","_useState3","_useState4","verifiedRanges","setVerifiedRanges","_useState5","_useState6","listHeight","setListHeight","_useFileList","useFileList","queryParams","data","loading","setQueryParams","clearList","removeFile","updateFile","_useMediaContext","useMediaContext","MediaContext","onClickPrompt","getSelectedFiles","selectedFiles","selectedFilter","hasFiles","files","useEffect","where","AVAILABLE_FILTER_TYPES","storeKey","isSearch","searchTerm","handleRenderedItems","_ref2","startIndex","rowsLength","loadIndex","Math","floor","MEDIA_OVER_SCAN_COUNT","includes","offset","concat","_toConsumableArray2","handleListHeight","current","clientHeight","window","addEventListener","removeEventListener","searchedTerm","createElement","Fragment","className","width","height","itemCount","itemSize","MEDIA_LIST_ITEM_SIZE","overscanCount","scrollToIndex","onItemsRendered","renderItem","_ref3","index","style","_data$files$index","name","url","mimetype","id","isSelected","existPrevious","key","latestQueryToRefetchParams","onSelected","selected","CardPrompt","onClick","propTypes","PropTypes","func","isRequired","bool","string","object","defaultProps","_default","exports"],"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","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_admin","_button","_reactTinyVirtualList","_mediaContext","_CardMedia","_mappers","_useFileList2","_constants","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","MediaFileList","_ref","displayCardPrompt","setDisplayCardPrompt","displayLayout","wrapperRef","modalTargetRef","openEditInModal","_useState","useState","_useState2","_slicedToArray2","currentListIndex","setCurrentListIndex","_useState3","_useState4","verifiedRanges","setVerifiedRanges","_useState5","_useState6","listHeight","setListHeight","_useFileList","useFileList","queryParams","data","loading","setQueryParams","clearList","removeFile","updateFile","_useMediaContext","useMediaContext","MediaContext","onClickPrompt","getSelectedFiles","selectedFiles","selectedFilter","hasFiles","files","useEffect","where","AVAILABLE_FILTER_TYPES","storeKey","isSearch","searchTerm","handleRenderedItems","_ref2","startIndex","rowsLength","loadIndex","Math","floor","MEDIA_OVER_SCAN_COUNT","includes","offset","concat","_toConsumableArray2","handleListHeight","current","clientHeight","window","addEventListener","removeEventListener","searchedTerm","createElement","Fragment","className","width","height","itemCount","itemSize","MEDIA_LIST_ITEM_SIZE","overscanCount","scrollToIndex","onItemsRendered","renderItem","_ref3","index","style","_data$files$index","name","url","mimetype","id","fileData","updated","isSelected","existPrevious","key","latestQueryToRefetchParams","onSelected","selected","CardPrompt","onClick","propTypes","PropTypes","func","isRequired","bool","string","object","defaultProps","_default","exports"],"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,18 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = bustUrl;
8
+ require("core-js/modules/es.array.concat.js");
9
+ require("core-js/modules/es.array.includes.js");
10
+ require("core-js/modules/es.date.now.js");
11
+ require("core-js/modules/es.string.includes.js");
12
+ function bustUrl(url, updated) {
13
+ if (!url) return url;
14
+ var separator = url.includes('?') ? '&' : '?';
15
+ var version = updated || Date.now();
16
+ return "".concat(url).concat(separator, "v=").concat(version);
17
+ }
18
+ //# sourceMappingURL=bustUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bustUrl.js","names":["bustUrl","url","updated","separator","includes","version","Date","now","concat"],"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":";;;;;;;;;;;AAAe,SAASA,OAAOA,CAACC,GAAG,EAAEC,OAAO,EAAE;EAC5C,IAAI,CAACD,GAAG,EAAE,OAAOA,GAAG;EACpB,IAAME,SAAS,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;EAC/C,IAAMC,OAAO,GAAGH,OAAO,IAAII,IAAI,CAACC,GAAG,CAAC,CAAC;EACrC,UAAAC,MAAA,CAAUP,GAAG,EAAAO,MAAA,CAAGL,SAAS,QAAAK,MAAA,CAAKH,OAAO;AACvC","ignoreList":[]}
@@ -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
  const CardMedia = ({
15
16
  onSelected,
16
17
  name,
@@ -20,6 +21,7 @@ const CardMedia = ({
20
21
  selected,
21
22
  displayLayout,
22
23
  data,
24
+ updated,
23
25
  modalTargetRef,
24
26
  updateFile,
25
27
  removeFile,
@@ -156,7 +158,7 @@ const CardMedia = ({
156
158
  }), modalTargetRef.current), type === 'image' ? /*#__PURE__*/React.createElement("div", {
157
159
  className: `card__image card__image--media-${displayLayout}`
158
160
  }, /*#__PURE__*/React.createElement("img", {
159
- src: url,
161
+ src: bustUrl(url, updated),
160
162
  alt: name
161
163
  })) : /*#__PURE__*/React.createElement("div", {
162
164
  className: "card__image card__image--media-list-document"
@@ -211,6 +213,7 @@ CardMedia.propTypes = {
211
213
  mimetype: PropTypes.string.isRequired,
212
214
  displayLayout: PropTypes.string.isRequired,
213
215
  data: PropTypes.object,
216
+ updated: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
214
217
  onSelected: PropTypes.func,
215
218
  updateFile: PropTypes.func.isRequired,
216
219
  removeFile: PropTypes.func.isRequired,
@@ -223,6 +226,7 @@ CardMedia.defaultProps = {
223
226
  onSelected: () => {},
224
227
  selected: false,
225
228
  data: {},
229
+ updated: null,
226
230
  openEditInModal: false
227
231
  };
228
232
  export default CardMedia;
@@ -1 +1 @@
1
- {"version":3,"file":"CardMedia.js","names":["React","useState","More","Button","DeleteAction","PropTypes","getQuery","getMutation","useMutation","useApolloClient","classnames","useToasts","Modal","createPortal","Link","EditMediaFile","CardMedia","onSelected","name","url","mimetype","id","selected","displayLayout","data","modalTargetRef","updateFile","removeFile","index","openEditInModal","displayDeleteModal","setDisplayDeleteModal","displayEditModal","setDisplayEditModal","enableSaveButton","setEnableSaveButton","fileData","setFileData","addToast","deleteFile","type","extension","split","client","deleteFileById","variables","input","appearance","autoDismiss","error","message","handleClick","cardMediaClassNames","handleCloseModal","handleSaveButtonStatus","state","modalActions","textButton","callback","modifiers","handleFormSave","handleFileChange","file","updatedFile","mutate","mutation","update","cache","fileUpdated","writeQuery","query","result","e","console","createElement","Fragment","title","actions","onClose","onChange","fileId","current","className","role","onClick","deleteAction","itemName","src","alt","xmlns","width","height","viewBox","d","displayBg","Avatar","isMoreMenu","Content","event","preventDefault","stopPropagation","to","propTypes","string","isRequired","object","func","bool","number","defaultProps"],"sources":["../../../src/components/CardMedia/CardMedia.js"],"sourcesContent":["import React, { useState } from 'react';\nimport More from '@blaze-react/more';\nimport Button from '@blaze-react/button';\nimport { DeleteAction } from '@blaze-cms/admin';\nimport PropTypes from 'prop-types';\nimport { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';\nimport { useMutation, useApolloClient } from '@apollo/client';\nimport classnames from 'classnames';\nimport { useToasts } from '@blaze-react/toaster';\nimport Modal from '@blaze-react/modal';\nimport { createPortal } from 'react-dom';\nimport { Link } from 'react-router-dom';\nimport EditMediaFile from '../EditMediaFile';\n\nconst CardMedia = ({\n onSelected,\n name,\n url,\n mimetype,\n id,\n selected,\n displayLayout,\n data,\n modalTargetRef,\n updateFile,\n removeFile,\n index,\n openEditInModal\n}) => {\n const [displayDeleteModal, setDisplayDeleteModal] = useState(false);\n const [displayEditModal, setDisplayEditModal] = useState(false);\n const [enableSaveButton, setEnableSaveButton] = useState(false);\n const [fileData, setFileData] = useState(null);\n const { addToast } = useToasts();\n const [deleteFile] = useMutation(getMutation('DELETE_FILE_BY_ID'));\n const [type, extension] = mimetype.split('/');\n const client = useApolloClient();\n\n const deleteFileById = async () => {\n setDisplayDeleteModal(false);\n try {\n await deleteFile({\n variables: { input: { id } }\n });\n\n removeFile({\n index\n });\n\n addToast(`File: ${name} has been deleted`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (error) {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n }\n };\n\n const handleClick = () => {\n onSelected({ id, url, name, data });\n };\n\n const cardMediaClassNames = classnames('card card--media-list', {\n 'card--media-list--selected': selected,\n [`card--media-${displayLayout}`]: displayLayout\n });\n\n const handleCloseModal = () => {\n setDisplayEditModal(false);\n };\n\n const handleSaveButtonStatus = state => {\n setEnableSaveButton(state);\n };\n\n const modalActions = [\n {\n textButton: 'Cancel',\n callback: handleCloseModal,\n modifiers: ['cancel']\n },\n {\n textButton: 'Apply',\n callback: () => handleFormSave(),\n modifiers: enableSaveButton ? [] : ['disabled']\n }\n ];\n\n const handleFileChange = file => {\n setFileData(file);\n };\n\n const handleFormSave = async () => {\n try {\n const {\n data: { updateFile: updatedFile }\n } = await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: { input: fileData },\n update(cache, { data: { updateFile: fileUpdated } }) {\n cache.writeQuery({\n query: getQuery('GET_FILE_BY_ID'),\n variables: { id },\n data: { file: fileUpdated.result }\n });\n }\n });\n\n updateFile({ file: updatedFile.result, index });\n addToast(`File: ${fileData.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (e) {\n addToast(`File: ${fileData.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n console.error(e); //eslint-disable-line\n }\n handleCloseModal();\n setEnableSaveButton(false);\n };\n\n return (\n <>\n {displayEditModal &&\n createPortal(\n <Modal title=\"Edit\" actions={modalActions} onClose={handleCloseModal}>\n <EditMediaFile\n onChange={handleFileChange}\n fileId={id}\n handleSaveButtonStatus={handleSaveButtonStatus}\n handleFormSave={handleFormSave}\n enableSaveButton={enableSaveButton}\n />\n </Modal>,\n modalTargetRef.current\n )}\n <div className={cardMediaClassNames} role=\"button\" onClick={handleClick}>\n {displayDeleteModal &&\n createPortal(\n <DeleteAction\n onClose={() => setDisplayDeleteModal(false)}\n deleteAction={() => deleteFileById()}\n itemName={name}\n />,\n modalTargetRef.current\n )}\n\n {type === 'image' ? (\n <div className={`card__image card__image--media-${displayLayout}`}>\n <img src={url} alt={name} />\n </div>\n ) : (\n <div className=\"card__image card__image--media-list-document\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 8 8\">\n <path d=\"M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z\" />\n </svg>\n </div>\n )}\n\n <footer className={`card__footer card__footer--media-${displayLayout}`}>\n <div className={`card__details card__details--media-${displayLayout}`}>\n <div className={`card__title card__title--media-${displayLayout}`}>\n <h2>{name}</h2>\n </div>\n <p>\n <span>format: {extension}</span>\n </p>\n </div>\n <div className={`card__menu card__menu--${displayLayout}`}>\n <div className=\"more-menu__wrapper more-menu__wrapper--card\">\n <More displayBg>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu>\n {openEditInModal ? (\n <Button\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n setDisplayEditModal(true);\n }}\n className=\"more-menu__link\">\n Edit\n </Button>\n ) : (\n <Link to={`/media/edit/${id}`} className=\"more-menu__link\">\n Edit\n </Link>\n )}\n <Button\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n setDisplayDeleteModal(true);\n }}\n className=\"more-menu__link\">\n Delete\n </Button>\n </More.Content>\n </More>\n </div>\n </div>\n </footer>\n </div>\n </>\n );\n};\n\nCardMedia.propTypes = {\n name: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n mimetype: PropTypes.string.isRequired,\n displayLayout: PropTypes.string.isRequired,\n data: PropTypes.object,\n onSelected: PropTypes.func,\n updateFile: PropTypes.func.isRequired,\n removeFile: PropTypes.func.isRequired,\n selected: PropTypes.bool,\n modalTargetRef: PropTypes.object.isRequired,\n index: PropTypes.number.isRequired,\n openEditInModal: PropTypes.bool\n};\n\nCardMedia.defaultProps = {\n onSelected: () => {},\n selected: false,\n data: {},\n openEditInModal: false\n};\n\nexport default CardMedia;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CardMedia.js","names":["React","useState","More","Button","DeleteAction","PropTypes","getQuery","getMutation","useMutation","useApolloClient","classnames","useToasts","Modal","createPortal","Link","EditMediaFile","bustUrl","CardMedia","onSelected","name","url","mimetype","id","selected","displayLayout","data","updated","modalTargetRef","updateFile","removeFile","index","openEditInModal","displayDeleteModal","setDisplayDeleteModal","displayEditModal","setDisplayEditModal","enableSaveButton","setEnableSaveButton","fileData","setFileData","addToast","deleteFile","type","extension","split","client","deleteFileById","variables","input","appearance","autoDismiss","error","message","handleClick","cardMediaClassNames","handleCloseModal","handleSaveButtonStatus","state","modalActions","textButton","callback","modifiers","handleFormSave","handleFileChange","file","updatedFile","mutate","mutation","update","cache","fileUpdated","writeQuery","query","result","e","console","createElement","Fragment","title","actions","onClose","onChange","fileId","current","className","role","onClick","deleteAction","itemName","src","alt","xmlns","width","height","viewBox","d","displayBg","Avatar","isMoreMenu","Content","event","preventDefault","stopPropagation","to","propTypes","string","isRequired","object","oneOfType","number","func","bool","defaultProps"],"sources":["../../../src/components/CardMedia/CardMedia.js"],"sourcesContent":["import React, { useState } from 'react';\nimport More from '@blaze-react/more';\nimport Button from '@blaze-react/button';\nimport { DeleteAction } from '@blaze-cms/admin';\nimport PropTypes from 'prop-types';\nimport { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';\nimport { useMutation, useApolloClient } from '@apollo/client';\nimport classnames from 'classnames';\nimport { useToasts } from '@blaze-react/toaster';\nimport Modal from '@blaze-react/modal';\nimport { createPortal } from 'react-dom';\nimport { Link } from 'react-router-dom';\nimport EditMediaFile from '../EditMediaFile';\nimport bustUrl from '../../utils/bustUrl';\n\nconst CardMedia = ({\n onSelected,\n name,\n url,\n mimetype,\n id,\n selected,\n displayLayout,\n data,\n updated,\n modalTargetRef,\n updateFile,\n removeFile,\n index,\n openEditInModal\n}) => {\n const [displayDeleteModal, setDisplayDeleteModal] = useState(false);\n const [displayEditModal, setDisplayEditModal] = useState(false);\n const [enableSaveButton, setEnableSaveButton] = useState(false);\n const [fileData, setFileData] = useState(null);\n const { addToast } = useToasts();\n const [deleteFile] = useMutation(getMutation('DELETE_FILE_BY_ID'));\n const [type, extension] = mimetype.split('/');\n const client = useApolloClient();\n\n const deleteFileById = async () => {\n setDisplayDeleteModal(false);\n try {\n await deleteFile({\n variables: { input: { id } }\n });\n\n removeFile({\n index\n });\n\n addToast(`File: ${name} has been deleted`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (error) {\n addToast(error.message, {\n appearance: 'error',\n autoDismiss: true\n });\n }\n };\n\n const handleClick = () => {\n onSelected({ id, url, name, data });\n };\n\n const cardMediaClassNames = classnames('card card--media-list', {\n 'card--media-list--selected': selected,\n [`card--media-${displayLayout}`]: displayLayout\n });\n\n const handleCloseModal = () => {\n setDisplayEditModal(false);\n };\n\n const handleSaveButtonStatus = state => {\n setEnableSaveButton(state);\n };\n\n const modalActions = [\n {\n textButton: 'Cancel',\n callback: handleCloseModal,\n modifiers: ['cancel']\n },\n {\n textButton: 'Apply',\n callback: () => handleFormSave(),\n modifiers: enableSaveButton ? [] : ['disabled']\n }\n ];\n\n const handleFileChange = file => {\n setFileData(file);\n };\n\n const handleFormSave = async () => {\n try {\n const {\n data: { updateFile: updatedFile }\n } = await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: { input: fileData },\n update(cache, { data: { updateFile: fileUpdated } }) {\n cache.writeQuery({\n query: getQuery('GET_FILE_BY_ID'),\n variables: { id },\n data: { file: fileUpdated.result }\n });\n }\n });\n\n updateFile({ file: updatedFile.result, index });\n addToast(`File: ${fileData.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (e) {\n addToast(`File: ${fileData.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n console.error(e); //eslint-disable-line\n }\n handleCloseModal();\n setEnableSaveButton(false);\n };\n\n return (\n <>\n {displayEditModal &&\n createPortal(\n <Modal title=\"Edit\" actions={modalActions} onClose={handleCloseModal}>\n <EditMediaFile\n onChange={handleFileChange}\n fileId={id}\n handleSaveButtonStatus={handleSaveButtonStatus}\n handleFormSave={handleFormSave}\n enableSaveButton={enableSaveButton}\n />\n </Modal>,\n modalTargetRef.current\n )}\n <div className={cardMediaClassNames} role=\"button\" onClick={handleClick}>\n {displayDeleteModal &&\n createPortal(\n <DeleteAction\n onClose={() => setDisplayDeleteModal(false)}\n deleteAction={() => deleteFileById()}\n itemName={name}\n />,\n modalTargetRef.current\n )}\n\n {type === 'image' ? (\n <div className={`card__image card__image--media-${displayLayout}`}>\n <img src={bustUrl(url, updated)} alt={name} />\n </div>\n ) : (\n <div className=\"card__image card__image--media-list-document\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 8 8\">\n <path d=\"M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z\" />\n </svg>\n </div>\n )}\n\n <footer className={`card__footer card__footer--media-${displayLayout}`}>\n <div className={`card__details card__details--media-${displayLayout}`}>\n <div className={`card__title card__title--media-${displayLayout}`}>\n <h2>{name}</h2>\n </div>\n <p>\n <span>format: {extension}</span>\n </p>\n </div>\n <div className={`card__menu card__menu--${displayLayout}`}>\n <div className=\"more-menu__wrapper more-menu__wrapper--card\">\n <More displayBg>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu>\n {openEditInModal ? (\n <Button\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n setDisplayEditModal(true);\n }}\n className=\"more-menu__link\">\n Edit\n </Button>\n ) : (\n <Link to={`/media/edit/${id}`} className=\"more-menu__link\">\n Edit\n </Link>\n )}\n <Button\n onClick={event => {\n event.preventDefault();\n event.stopPropagation();\n setDisplayDeleteModal(true);\n }}\n className=\"more-menu__link\">\n Delete\n </Button>\n </More.Content>\n </More>\n </div>\n </div>\n </footer>\n </div>\n </>\n );\n};\n\nCardMedia.propTypes = {\n name: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n mimetype: PropTypes.string.isRequired,\n displayLayout: PropTypes.string.isRequired,\n data: PropTypes.object,\n updated: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onSelected: PropTypes.func,\n updateFile: PropTypes.func.isRequired,\n removeFile: PropTypes.func.isRequired,\n selected: PropTypes.bool,\n modalTargetRef: PropTypes.object.isRequired,\n index: PropTypes.number.isRequired,\n openEditInModal: PropTypes.bool\n};\n\nCardMedia.defaultProps = {\n onSelected: () => {},\n selected: false,\n data: {},\n updated: null,\n openEditInModal: false\n};\n\nexport default CardMedia;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,6 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ const _excluded = ["__typename"];
2
4
  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
5
  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
6
  import React, { useState, useEffect } from 'react';
@@ -12,9 +14,9 @@ import { STORE_KEY, NAME } from '../../constants';
12
14
  const EditMediaFile = ({
13
15
  onChange,
14
16
  handleSaveButtonStatus,
15
- enableSaveButton,
16
17
  fileId,
17
- showChangeButton
18
+ showChangeButton,
19
+ fileUpdated
18
20
  }) => {
19
21
  const [formValues, setFormValues] = useState(null);
20
22
  const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);
@@ -32,7 +34,7 @@ const EditMediaFile = ({
32
34
  variables: {
33
35
  id: fileId
34
36
  },
35
- fetchPolicy: 'network-only'
37
+ fetchPolicy: 'cache-and-network'
36
38
  });
37
39
  const fileStoresType = getQuery('GET_FILE_STORES');
38
40
  const {
@@ -45,15 +47,26 @@ const EditMediaFile = ({
45
47
  }
46
48
  });
47
49
  useEffect(() => {
48
- if (!formValues && file) {
49
- setFormValues(file);
50
+ if (file) {
51
+ setFormValues(prevFormValues => {
52
+ if (!prevFormValues || prevFormValues.updated !== file.updated) {
53
+ return file;
54
+ }
55
+ return prevFormValues;
56
+ });
57
+ }
58
+ }, [file]);
59
+ useEffect(() => {
60
+ if (fileUpdated && fileUpdated.updated) {
61
+ setFormValues(fileUpdated);
50
62
  }
51
- }, [file, formValues, storeType]);
63
+ }, [fileUpdated]);
52
64
  const handleFormChange = ({
53
65
  isValid,
54
66
  isNewValueSet,
55
67
  valuesChecked
56
68
  }) => {
69
+ const baseFile = formValues || file;
57
70
  const valuesCheckedWithoutName = valuesChecked.filter(({
58
71
  id
59
72
  }) => id !== NAME && id !== STORE_KEY);
@@ -75,31 +88,38 @@ const EditMediaFile = ({
75
88
  id
76
89
  }) => id === STORE_KEY) || {};
77
90
  const shouldEnableSaveButton = isNewValueSet && isValid;
78
- handleSaveButtonStatus(false);
79
- if (shouldEnableSaveButton && shouldEnableSaveButton !== enableSaveButton) {
80
- handleSaveButtonStatus(shouldEnableSaveButton);
81
- }
82
- const updatedFile = {
83
- id: file.id,
84
- name: newFileName,
85
- storeKey,
86
- data: dataValues
87
- };
91
+ handleSaveButtonStatus(shouldEnableSaveButton);
92
+ const updatedFile = _objectSpread(_objectSpread({}, baseFile), {}, {
93
+ name: newFileName || baseFile.name,
94
+ storeKey: storeKey || baseFile.storeKey,
95
+ data: _objectSpread(_objectSpread({}, baseFile.data || {}), dataValues)
96
+ });
88
97
  setFormValues(updatedFile);
89
- onChange(updatedFile);
98
+ // Strip GraphQL metadata field __typename before passing data to onChange.
99
+ const _ref = updatedFile.data || {},
100
+ {
101
+ __typename
102
+ } = _ref,
103
+ cleanData = _objectWithoutProperties(_ref, _excluded);
104
+ onChange({
105
+ id: updatedFile.id,
106
+ name: updatedFile.name,
107
+ data: cleanData
108
+ });
90
109
  };
91
- const getFileWithStoreType = () => {
92
- if (storeType && file) {
110
+ const getFileWithStoreType = sourceFile => {
111
+ const base = sourceFile || file;
112
+ if (storeType && base) {
93
113
  const storeOptions = storeType.map(type => [type.key, type.name]);
94
114
  const defaultStore = storeType.find(type => type.isDefault) || null;
95
- return _objectSpread(_objectSpread({}, file), {}, {
115
+ return _objectSpread(_objectSpread({}, base), {}, {
96
116
  store: {
97
117
  defaultStore,
98
118
  storeOptions
99
119
  }
100
120
  });
101
121
  }
102
- return file;
122
+ return base;
103
123
  };
104
124
  const closeModalAndSetValue = async (isSaving, values, toastMessage) => {
105
125
  if (toastMessage) {
@@ -108,32 +128,47 @@ const EditMediaFile = ({
108
128
  autoDismiss: true
109
129
  });
110
130
  }
111
- await refetchFile({
112
- id: fileId,
113
- timestamp: Date.now()
114
- });
131
+ if (values) {
132
+ const updated = values.id === fileId ? values : _objectSpread(_objectSpread(_objectSpread({}, formValues || file), values), {}, {
133
+ url: values.url || (formValues || file).url
134
+ });
135
+ setFormValues(updated);
136
+ onChange(updated);
137
+ handleSaveButtonStatus(true);
138
+ } else {
139
+ const {
140
+ data: {
141
+ file: refreshedFile
142
+ } = {}
143
+ } = await refetchFile({
144
+ id: fileId,
145
+ timestamp: Date.now()
146
+ });
147
+ if (refreshedFile) {
148
+ setFormValues(refreshedFile);
149
+ onChange(refreshedFile);
150
+ handleSaveButtonStatus(true);
151
+ }
152
+ }
115
153
  setDisplayFileUploadModal(false);
116
154
  };
117
- const handleChangeFile = () => {
118
- setDisplayFileUploadModal(true);
119
- };
120
155
  if (loading) return /*#__PURE__*/React.createElement("div", null, "loading...");
121
- const fileWithStoreType = getFileWithStoreType();
156
+ const fileToRender = formValues || file;
157
+ const fileWithStoreType = getFileWithStoreType(fileToRender);
122
158
  return !loading ? /*#__PURE__*/React.createElement(React.Fragment, null, !!file && /*#__PURE__*/React.createElement(FilePreview, {
123
159
  file: fileWithStoreType,
124
160
  handleFormChange: handleFormChange,
125
- handleChangeFile: handleChangeFile,
161
+ handleChangeFile: () => setDisplayFileUploadModal(true),
126
162
  displayForm: true,
127
163
  showChangeButton: showChangeButton
128
164
  }), displayFileUploadModal && /*#__PURE__*/React.createElement("div", {
129
165
  className: "file-upload-modal-wrapper"
130
166
  }, /*#__PURE__*/React.createElement(FileUploadModal, {
131
- onClose: () => {
132
- setDisplayFileUploadModal(false);
133
- },
167
+ onClose: () => setDisplayFileUploadModal(false),
134
168
  closeModalAndSetValue: closeModalAndSetValue,
135
169
  simpleLayout: true,
136
170
  fileId: fileId,
171
+ storeKey: file && file.storeKey,
137
172
  getSelectedFiles: () => {}
138
173
  }))) : /*#__PURE__*/React.createElement("div", null, "loading...");
139
174
  };
@@ -141,12 +176,12 @@ EditMediaFile.propTypes = {
141
176
  fileId: PropTypes.string.isRequired,
142
177
  onChange: PropTypes.func.isRequired,
143
178
  handleSaveButtonStatus: PropTypes.func.isRequired,
144
- enableSaveButton: PropTypes.bool,
145
- showChangeButton: PropTypes.bool
179
+ showChangeButton: PropTypes.bool,
180
+ fileUpdated: PropTypes.object
146
181
  };
147
182
  EditMediaFile.defaultProps = {
148
- enableSaveButton: false,
149
- showChangeButton: false
183
+ showChangeButton: false,
184
+ fileUpdated: null
150
185
  };
151
186
  export default EditMediaFile;
152
187
  //# sourceMappingURL=EditMediaFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditMediaFile.js","names":["React","useState","useEffect","PropTypes","getQuery","useQuery","useToasts","FilePreview","FileUploadModal","STORE_KEY","NAME","EditMediaFile","onChange","handleSaveButtonStatus","enableSaveButton","fileId","showChangeButton","formValues","setFormValues","displayFileUploadModal","setDisplayFileUploadModal","addToast","fileQuery","loading","data","file","refetch","refetchFile","variables","id","fetchPolicy","fileStoresType","getFileStores","storeType","visibleInAdmin","handleFormChange","isValid","isNewValueSet","valuesChecked","valuesCheckedWithoutName","filter","dataValues","reduce","acc","value","newFileName","find","storeKey","shouldEnableSaveButton","updatedFile","name","getFileWithStoreType","storeOptions","map","type","key","defaultStore","isDefault","_objectSpread","store","closeModalAndSetValue","isSaving","values","toastMessage","appearance","autoDismiss","timestamp","Date","now","handleChangeFile","createElement","fileWithStoreType","Fragment","displayForm","className","onClose","simpleLayout","getSelectedFiles","propTypes","string","isRequired","func","bool","defaultProps"],"sources":["../../../src/components/EditMediaFile/EditMediaFile.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { useQuery } from '@apollo/client';\nimport { useToasts } from '@blaze-react/toaster';\nimport FilePreview from '../FilePreview';\nimport FileUploadModal from '../FileUploadModal';\nimport { STORE_KEY, NAME } from '../../constants';\n\nconst EditMediaFile = ({\n onChange,\n handleSaveButtonStatus,\n enableSaveButton,\n fileId,\n showChangeButton\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const { addToast } = useToasts();\n\n const fileQuery = getQuery('GET_FILE_BY_ID');\n const {\n loading,\n data: { file } = {},\n refetch: refetchFile\n } = useQuery(fileQuery, {\n variables: { id: fileId },\n fetchPolicy: 'network-only'\n });\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n useEffect(() => {\n if (!formValues && file) {\n setFormValues(file);\n }\n }, [file, formValues, storeType]);\n\n const handleFormChange = ({ isValid, isNewValueSet, valuesChecked }) => {\n const valuesCheckedWithoutName = valuesChecked.filter(\n ({ id }) => id !== NAME && id !== STORE_KEY\n );\n\n const dataValues = valuesCheckedWithoutName.reduce((acc, { id, value }) => {\n acc[id] = value;\n return acc;\n }, {});\n\n const { value: newFileName } = valuesChecked.find(({ id }) => id === NAME) || {};\n const { value: storeKey } = valuesChecked.find(({ id }) => id === STORE_KEY) || {};\n\n const shouldEnableSaveButton = isNewValueSet && isValid;\n handleSaveButtonStatus(false);\n if (shouldEnableSaveButton && shouldEnableSaveButton !== enableSaveButton) {\n handleSaveButtonStatus(shouldEnableSaveButton);\n }\n\n const updatedFile = {\n id: file.id,\n name: newFileName,\n storeKey,\n data: dataValues\n };\n\n setFormValues(updatedFile);\n onChange(updatedFile);\n };\n\n const getFileWithStoreType = () => {\n if (storeType && file) {\n const storeOptions = storeType.map(type => [type.key, type.name]);\n const defaultStore = storeType.find(type => type.isDefault) || null;\n return { ...file, store: { defaultStore, storeOptions } };\n }\n return file;\n };\n\n const closeModalAndSetValue = async (isSaving, values, toastMessage) => {\n if (toastMessage) {\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n }\n await refetchFile({\n id: fileId,\n timestamp: Date.now()\n });\n setDisplayFileUploadModal(false);\n };\n\n const handleChangeFile = () => {\n setDisplayFileUploadModal(true);\n };\n\n if (loading) return <div>loading...</div>;\n\n const fileWithStoreType = getFileWithStoreType();\n\n return !loading ? (\n <>\n {!!file && (\n <FilePreview\n file={fileWithStoreType}\n handleFormChange={handleFormChange}\n handleChangeFile={handleChangeFile}\n displayForm\n showChangeButton={showChangeButton}\n />\n )}\n {displayFileUploadModal && (\n <div className=\"file-upload-modal-wrapper\">\n <FileUploadModal\n onClose={() => {\n setDisplayFileUploadModal(false);\n }}\n closeModalAndSetValue={closeModalAndSetValue}\n simpleLayout\n fileId={fileId}\n getSelectedFiles={() => {}}\n />\n </div>\n )}\n </>\n ) : (\n <div>loading...</div>\n );\n};\n\nEditMediaFile.propTypes = {\n fileId: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n handleSaveButtonStatus: PropTypes.func.isRequired,\n enableSaveButton: PropTypes.bool,\n showChangeButton: PropTypes.bool\n};\n\nEditMediaFile.defaultProps = {\n enableSaveButton: false,\n showChangeButton: false\n};\n\nexport default EditMediaFile;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditMediaFile.js","names":["React","useState","useEffect","PropTypes","getQuery","useQuery","useToasts","FilePreview","FileUploadModal","STORE_KEY","NAME","EditMediaFile","onChange","handleSaveButtonStatus","fileId","showChangeButton","fileUpdated","formValues","setFormValues","displayFileUploadModal","setDisplayFileUploadModal","addToast","fileQuery","loading","data","file","refetch","refetchFile","variables","id","fetchPolicy","fileStoresType","getFileStores","storeType","visibleInAdmin","prevFormValues","updated","handleFormChange","isValid","isNewValueSet","valuesChecked","baseFile","valuesCheckedWithoutName","filter","dataValues","reduce","acc","value","newFileName","find","storeKey","shouldEnableSaveButton","updatedFile","_objectSpread","name","_ref","__typename","cleanData","_objectWithoutProperties","_excluded","getFileWithStoreType","sourceFile","base","storeOptions","map","type","key","defaultStore","isDefault","store","closeModalAndSetValue","isSaving","values","toastMessage","appearance","autoDismiss","url","refreshedFile","timestamp","Date","now","createElement","fileToRender","fileWithStoreType","Fragment","handleChangeFile","displayForm","className","onClose","simpleLayout","getSelectedFiles","propTypes","string","isRequired","func","bool","object","defaultProps"],"sources":["../../../src/components/EditMediaFile/EditMediaFile.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { useQuery } from '@apollo/client';\nimport { useToasts } from '@blaze-react/toaster';\nimport FilePreview from '../FilePreview';\nimport FileUploadModal from '../FileUploadModal';\nimport { STORE_KEY, NAME } from '../../constants';\n\nconst EditMediaFile = ({\n onChange,\n handleSaveButtonStatus,\n fileId,\n showChangeButton,\n fileUpdated\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const { addToast } = useToasts();\n\n const fileQuery = getQuery('GET_FILE_BY_ID');\n const {\n loading,\n data: { file } = {},\n refetch: refetchFile\n } = useQuery(fileQuery, {\n variables: { id: fileId },\n fetchPolicy: 'cache-and-network'\n });\n\n const fileStoresType = getQuery('GET_FILE_STORES');\n const { data: { getFileStores: storeType = [] } = {} } = useQuery(fileStoresType, {\n variables: { visibleInAdmin: true }\n });\n\n useEffect(() => {\n if (file) {\n setFormValues(prevFormValues => {\n if (!prevFormValues || prevFormValues.updated !== file.updated) {\n return file;\n }\n return prevFormValues;\n });\n }\n }, [file]);\n\n useEffect(() => {\n if (fileUpdated && fileUpdated.updated) {\n setFormValues(fileUpdated);\n }\n }, [fileUpdated]);\n\n const handleFormChange = ({ isValid, isNewValueSet, valuesChecked }) => {\n const baseFile = formValues || file;\n const valuesCheckedWithoutName = valuesChecked.filter(\n ({ id }) => id !== NAME && id !== STORE_KEY\n );\n\n const dataValues = valuesCheckedWithoutName.reduce((acc, { id, value }) => {\n acc[id] = value;\n return acc;\n }, {});\n\n const { value: newFileName } = valuesChecked.find(({ id }) => id === NAME) || {};\n const { value: storeKey } = valuesChecked.find(({ id }) => id === STORE_KEY) || {};\n\n const shouldEnableSaveButton = isNewValueSet && isValid;\n handleSaveButtonStatus(shouldEnableSaveButton);\n\n const updatedFile = {\n ...baseFile,\n name: newFileName || baseFile.name,\n storeKey: storeKey || baseFile.storeKey,\n data: { ...(baseFile.data || {}), ...dataValues }\n };\n\n setFormValues(updatedFile);\n // Strip GraphQL metadata field __typename before passing data to onChange.\n const { __typename, ...cleanData } = updatedFile.data || {};\n onChange({ id: updatedFile.id, name: updatedFile.name, data: cleanData });\n };\n\n const getFileWithStoreType = sourceFile => {\n const base = sourceFile || file;\n if (storeType && base) {\n const storeOptions = storeType.map(type => [type.key, type.name]);\n const defaultStore = storeType.find(type => type.isDefault) || null;\n return { ...base, store: { defaultStore, storeOptions } };\n }\n return base;\n };\n\n const closeModalAndSetValue = async (isSaving, values, toastMessage) => {\n if (toastMessage) {\n addToast(toastMessage, { appearance: 'success', autoDismiss: true });\n }\n\n if (values) {\n const updated =\n values.id === fileId\n ? values\n : {\n ...(formValues || file),\n ...values,\n url: values.url || (formValues || file).url\n };\n setFormValues(updated);\n onChange(updated);\n handleSaveButtonStatus(true);\n } else {\n const { data: { file: refreshedFile } = {} } = await refetchFile({\n id: fileId,\n timestamp: Date.now()\n });\n if (refreshedFile) {\n setFormValues(refreshedFile);\n onChange(refreshedFile);\n handleSaveButtonStatus(true);\n }\n }\n\n setDisplayFileUploadModal(false);\n };\n\n if (loading) return <div>loading...</div>;\n\n const fileToRender = formValues || file;\n const fileWithStoreType = getFileWithStoreType(fileToRender);\n\n return !loading ? (\n <>\n {!!file && (\n <FilePreview\n file={fileWithStoreType}\n handleFormChange={handleFormChange}\n handleChangeFile={() => setDisplayFileUploadModal(true)}\n displayForm\n showChangeButton={showChangeButton}\n />\n )}\n {displayFileUploadModal && (\n <div className=\"file-upload-modal-wrapper\">\n <FileUploadModal\n onClose={() => setDisplayFileUploadModal(false)}\n closeModalAndSetValue={closeModalAndSetValue}\n simpleLayout\n fileId={fileId}\n storeKey={file && file.storeKey}\n getSelectedFiles={() => { }}\n />\n </div>\n )}\n </>\n ) : (\n <div>loading...</div>\n );\n};\n\nEditMediaFile.propTypes = {\n fileId: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n handleSaveButtonStatus: PropTypes.func.isRequired,\n showChangeButton: PropTypes.bool,\n fileUpdated: PropTypes.object\n};\n\nEditMediaFile.defaultProps = {\n showChangeButton: false,\n fileUpdated: null\n};\n\nexport default EditMediaFile;\n"],"mappings":"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","ignoreList":[]}
@@ -21,28 +21,50 @@ const EditMediaFilePage = ({
21
21
  setShouldEnableSaveButton(value);
22
22
  };
23
23
  const handleFormSave = async () => {
24
+ if (!file) {
25
+ addToast('No file data to update', {
26
+ appearance: 'error',
27
+ autoDismiss: true
28
+ });
29
+ return;
30
+ }
24
31
  try {
25
- await client.mutate({
32
+ const inputData = {
33
+ id: file.id,
34
+ name: file.name,
35
+ data: file.data,
36
+ storeKey: file.storeKey
37
+ };
38
+ const {
39
+ data: {
40
+ updateFile: updatedFile
41
+ }
42
+ } = await client.mutate({
26
43
  mutation: getMutation('UPDATE_FILE'),
27
44
  variables: {
28
- input: file
45
+ input: inputData
29
46
  },
30
47
  update(cache, {
31
48
  data: {
32
49
  updateFile: fileUpdated
33
50
  }
34
51
  }) {
35
- cache.writeQuery({
36
- query: getQuery('GET_FILE_BY_ID'),
37
- variables: {
38
- id: match.params.fileId
39
- },
40
- data: {
41
- file: fileUpdated.result
42
- }
43
- });
52
+ try {
53
+ cache.writeQuery({
54
+ query: getQuery('GET_FILE_BY_ID'),
55
+ variables: {
56
+ id: match.params.fileId
57
+ },
58
+ data: {
59
+ file: fileUpdated.result
60
+ }
61
+ });
62
+ } catch (e) {
63
+ console.error(e); //eslint-disable-line
64
+ }
44
65
  }
45
66
  });
67
+ setFile(updatedFile.result);
46
68
  addToast(`File: ${file.name} has been updated`, {
47
69
  appearance: 'success',
48
70
  autoDismiss: true
@@ -52,7 +74,6 @@ const EditMediaFilePage = ({
52
74
  appearance: 'error',
53
75
  autoDismiss: true
54
76
  });
55
- console.error(e); //eslint-disable-line
56
77
  }
57
78
  setShouldEnableSaveButton(false);
58
79
  };
@@ -69,7 +90,8 @@ const EditMediaFilePage = ({
69
90
  fileId: match.params.fileId,
70
91
  handleSaveButtonStatus: handleSaveButtonStatus,
71
92
  handleFormSave: handleFormSave,
72
- showChangeButton: true
93
+ showChangeButton: true,
94
+ fileUpdated: file
73
95
  }), /*#__PURE__*/React.createElement("div", {
74
96
  className: "page__content__mediaWrapperActions"
75
97
  }, /*#__PURE__*/React.createElement(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"EditMediaFilePage.js","names":["React","useState","withRouter","PropTypes","Button","useApolloClient","getQuery","getMutation","useToasts","EditMediaFile","EditMediaFilePage","match","history","shouldEnableSaveButton","setShouldEnableSaveButton","file","setFile","client","addToast","handleFileChange","values","handleSaveButtonStatus","value","handleFormSave","mutate","mutation","variables","input","update","cache","data","updateFile","fileUpdated","writeQuery","query","id","params","fileId","result","name","appearance","autoDismiss","e","console","error","pushBack","push","buttonModifiers","createElement","className","onChange","showChangeButton","onClick","modifiers","propTypes","object","isRequired"],"sources":["../../../src/components/EditMediaFile/EditMediaFilePage.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';\nimport { useToasts } from '@blaze-react/toaster';\nimport EditMediaFile from './EditMediaFile';\n\nconst EditMediaFilePage = ({ match, history }) => {\n const [shouldEnableSaveButton, setShouldEnableSaveButton] = useState(false);\n const [file, setFile] = useState(null);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n const handleFileChange = values => setFile(values);\n\n const handleSaveButtonStatus = value => {\n setShouldEnableSaveButton(value);\n };\n\n const handleFormSave = async () => {\n try {\n await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: { input: file },\n update(cache, { data: { updateFile: fileUpdated } }) {\n cache.writeQuery({\n query: getQuery('GET_FILE_BY_ID'),\n variables: { id: match.params.fileId },\n data: { file: fileUpdated.result }\n });\n }\n });\n\n addToast(`File: ${file.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (e) {\n addToast(`File: ${file.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n console.error(e); //eslint-disable-line\n }\n setShouldEnableSaveButton(false);\n };\n\n const pushBack = () => history.push('/media');\n\n const buttonModifiers = shouldEnableSaveButton ? [] : ['disabled'];\n\n return (\n <div className=\"page\">\n <div className=\"page__content\">\n <div className=\"page__content__mediaWrapper\">\n <EditMediaFile\n onChange={handleFileChange}\n fileId={match.params.fileId}\n handleSaveButtonStatus={handleSaveButtonStatus}\n handleFormSave={handleFormSave}\n showChangeButton\n />\n <div className=\"page__content__mediaWrapperActions\">\n <Button onClick={pushBack}>Cancel</Button>\n <Button onClick={handleFormSave} modifiers={buttonModifiers}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nEditMediaFilePage.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired\n};\n\nexport default withRouter(EditMediaFilePage);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditMediaFilePage.js","names":["React","useState","withRouter","PropTypes","Button","useApolloClient","getQuery","getMutation","useToasts","EditMediaFile","EditMediaFilePage","match","history","shouldEnableSaveButton","setShouldEnableSaveButton","file","setFile","client","addToast","handleFileChange","values","handleSaveButtonStatus","value","handleFormSave","appearance","autoDismiss","inputData","id","name","data","storeKey","updateFile","updatedFile","mutate","mutation","variables","input","update","cache","fileUpdated","writeQuery","query","params","fileId","result","e","console","error","pushBack","push","buttonModifiers","createElement","className","onChange","showChangeButton","onClick","modifiers","propTypes","object","isRequired"],"sources":["../../../src/components/EditMediaFile/EditMediaFilePage.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';\nimport { useToasts } from '@blaze-react/toaster';\nimport EditMediaFile from './EditMediaFile';\n\nconst EditMediaFilePage = ({ match, history }) => {\n const [shouldEnableSaveButton, setShouldEnableSaveButton] = useState(false);\n const [file, setFile] = useState(null);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n const handleFileChange = values => setFile(values);\n\n const handleSaveButtonStatus = value => {\n setShouldEnableSaveButton(value);\n };\n\n const handleFormSave = async () => {\n if (!file) {\n addToast('No file data to update', {\n appearance: 'error',\n autoDismiss: true\n });\n return;\n }\n\n try {\n const inputData = {\n id: file.id,\n name: file.name,\n data: file.data,\n storeKey: file.storeKey\n };\n\n const {\n data: { updateFile: updatedFile }\n } = await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: {\n input: inputData\n },\n update(cache, { data: { updateFile: fileUpdated } }) {\n try {\n cache.writeQuery({\n query: getQuery('GET_FILE_BY_ID'),\n variables: { id: match.params.fileId },\n data: { file: fileUpdated.result }\n });\n } catch (e) {\n console.error(e); //eslint-disable-line\n }\n }\n });\n\n setFile(updatedFile.result);\n\n addToast(`File: ${file.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n } catch (e) {\n addToast(`File: ${file.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n }\n setShouldEnableSaveButton(false);\n };\n\n const pushBack = () => history.push('/media');\n\n const buttonModifiers = shouldEnableSaveButton ? [] : ['disabled'];\n\n return (\n <div className=\"page\">\n <div className=\"page__content\">\n <div className=\"page__content__mediaWrapper\">\n <EditMediaFile\n onChange={handleFileChange}\n fileId={match.params.fileId}\n handleSaveButtonStatus={handleSaveButtonStatus}\n handleFormSave={handleFormSave}\n showChangeButton\n fileUpdated={file}\n />\n <div className=\"page__content__mediaWrapperActions\">\n <Button onClick={pushBack}>Cancel</Button>\n <Button onClick={handleFormSave} modifiers={buttonModifiers}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nEditMediaFilePage.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired\n};\n\nexport default withRouter(EditMediaFilePage);\n"],"mappings":"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","ignoreList":[]}