@blaze-cms/plugin-media-ui 0.147.0-rc-eagle.2 → 0.147.0-rc-eagle.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/CardMedia/CardMedia.js +94 -51
- package/lib/components/CardMedia/CardMedia.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFile.js +24 -40
- package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib/components/EditMediaFile/EditMediaFilePage.js +14 -7
- package/lib/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib/components/FileList/useGetFiles/getFiles.js +6 -3
- package/lib/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib/components/FileList/useGetFiles/useGetFiles.js +7 -2
- package/lib/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js +4 -1
- package/lib/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib/components/FilePreview/Image/imageSchema.js +8 -4
- package/lib/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib/components/FilePreview/PDF/schema.js +2 -1
- package/lib/components/FilePreview/PDF/schema.js.map +1 -1
- package/lib/components/FilePreview/index.js +47 -3
- package/lib/components/FilePreview/index.js.map +1 -1
- package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
- package/lib/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js +33 -22
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib/components/FilterPanel/FilterPanel.js +43 -125
- package/lib/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib/components/FilterPanel/MediaSearchFilter.js +41 -0
- package/lib/components/FilterPanel/MediaSearchFilter.js.map +1 -0
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +5 -4
- package/lib/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib/components/ListingContainer/ListingContainer.js +4 -1
- package/lib/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib/constants.js +2 -1
- package/lib/constants.js.map +1 -1
- package/lib-es/components/CardMedia/CardMedia.js +96 -53
- package/lib-es/components/CardMedia/CardMedia.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFile.js +26 -42
- package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js +15 -8
- package/lib-es/components/EditMediaFile/EditMediaFilePage.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/getFiles.js +6 -3
- package/lib-es/components/FileList/useGetFiles/getFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js +7 -2
- package/lib-es/components/FileList/useGetFiles/useGetFiles.js.map +1 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js +4 -1
- package/lib-es/components/FileList/useGetFilesList/useGetFilesList.js.map +1 -1
- package/lib-es/components/FilePreview/Image/imageSchema.js +8 -4
- package/lib-es/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib-es/components/FilePreview/PDF/schema.js +2 -1
- package/lib-es/components/FilePreview/PDF/schema.js.map +1 -1
- package/lib-es/components/FilePreview/index.js +47 -3
- package/lib-es/components/FilePreview/index.js.map +1 -1
- package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
- package/lib-es/components/FilePreview/previewDefault/previewDefaultSchema.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +34 -23
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib-es/components/FilterPanel/FilterPanel.js +43 -123
- package/lib-es/components/FilterPanel/FilterPanel.js.map +1 -1
- package/lib-es/components/FilterPanel/MediaSearchFilter.js +34 -0
- package/lib-es/components/FilterPanel/MediaSearchFilter.js.map +1 -0
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +5 -4
- package/lib-es/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js.map +1 -1
- package/lib-es/components/ListingContainer/ListingContainer.js +4 -1
- package/lib-es/components/ListingContainer/ListingContainer.js.map +1 -1
- package/lib-es/constants.js +2 -1
- package/lib-es/constants.js.map +1 -1
- package/package.json +8 -9
- package/src/components/CardMedia/CardMedia.js +120 -90
- package/src/components/EditMediaFile/EditMediaFile.js +26 -29
- package/src/components/EditMediaFile/EditMediaFilePage.js +12 -7
- package/src/components/FileList/useGetFiles/getFiles.js +12 -4
- package/src/components/FileList/useGetFiles/useGetFiles.js +3 -4
- package/src/components/FileList/useGetFilesList/useGetFilesList.js +2 -1
- package/src/components/FilePreview/Image/imageSchema.js +8 -4
- package/src/components/FilePreview/PDF/schema.js +2 -1
- package/src/components/FilePreview/index.js +36 -2
- package/src/components/FilePreview/previewDefault/previewDefaultSchema.js +2 -1
- package/src/components/FileUploadAdapter/FileUploadAdapter.js +24 -14
- package/src/components/FilterPanel/FilterPanel.js +44 -129
- package/src/components/FilterPanel/MediaSearchFilter.js +32 -0
- package/src/components/ListingContainer/Listing/MediaListing/MediaFileList/MediaFileList.js +5 -2
- package/src/components/ListingContainer/ListingContainer.js +4 -1
- package/src/constants.js +15 -1
package/lib/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.STORE_KEY = exports.REORDER = exports.PREVIEW = exports.PLUGIN_NAME = exports.ONE_FILE_AS_LIMIT = exports.NAME = exports.MORE = exports.MEDIA_OVER_SCAN_COUNT = exports.MEDIA_LIST_ITEM_SIZE = exports.INVALID_STORE_KEY_VALUES = exports.IMAGES = exports.ICON_SIZE = exports.ICON_COLOR = exports.AVAILABLE_FILTER_TYPES = exports.ALL = void 0;
|
|
6
|
+
exports.STORE_KEY = exports.REORDER = exports.PREVIEW = exports.PLUGIN_NAME = exports.ONE_FILE_AS_LIMIT = exports.NAME = exports.MORE = exports.MEDIA_OVER_SCAN_COUNT = exports.MEDIA_LIST_ITEM_SIZE = exports.INVALID_STORE_KEY_VALUES = exports.IMAGES = exports.ICON_SIZE = exports.ICON_COLOR = exports.FILE_DEFAULT_PROPS = exports.AVAILABLE_FILTER_TYPES = exports.ALL = void 0;
|
|
7
7
|
const PLUGIN_NAME = exports.PLUGIN_NAME = 'media-ui';
|
|
8
8
|
const ONE_FILE_AS_LIMIT = exports.ONE_FILE_AS_LIMIT = 1;
|
|
9
9
|
const AVAILABLE_FILTER_TYPES = exports.AVAILABLE_FILTER_TYPES = {
|
|
@@ -38,4 +38,5 @@ const PREVIEW = exports.PREVIEW = 'Preview';
|
|
|
38
38
|
const REORDER = exports.REORDER = 'Reorder';
|
|
39
39
|
const IMAGES = exports.IMAGES = 'Images';
|
|
40
40
|
const MORE = exports.MORE = 'more ...';
|
|
41
|
+
const FILE_DEFAULT_PROPS = exports.FILE_DEFAULT_PROPS = ['id', 'location', 'mimetype', 'url', 'data', 'name', 'storeKey', 'filename', 'type', 'updated'];
|
|
41
42
|
//# sourceMappingURL=constants.js.map
|
package/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","exports","ONE_FILE_AS_LIMIT","AVAILABLE_FILTER_TYPES","all","type","images","videos","documents","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","STORE_KEY","NAME","ALL","INVALID_STORE_KEY_VALUES","PREVIEW","REORDER","IMAGES","MORE"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'media-ui';\nconst ONE_FILE_AS_LIMIT = 1;\nconst AVAILABLE_FILTER_TYPES = {\n all: {\n type: 'all'\n },\n images: {\n type: 'image'\n },\n videos: {\n type: 'video'\n },\n documents: {\n type: 'text'\n }\n};\n\nconst MEDIA_LIST_ITEM_SIZE = 97;\nconst MEDIA_OVER_SCAN_COUNT = 0;\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst STORE_KEY = 'storeKey';\nconst NAME = 'name';\n\nconst ALL = 'all';\nconst INVALID_STORE_KEY_VALUES = [null, '', 'Please Choose...', 'Any'];\nconst PREVIEW = 'Preview';\nconst REORDER = 'Reorder';\nconst IMAGES = 'Images';\nconst MORE = 'more ...';\n\nexport {\n ALL,\n AVAILABLE_FILTER_TYPES,\n IMAGES,\n INVALID_STORE_KEY_VALUES,\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n MORE,\n NAME,\n ONE_FILE_AS_LIMIT,\n PLUGIN_NAME,\n PREVIEW,\n REORDER,\n STORE_KEY,\n ICON_SIZE,\n ICON_COLOR\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,UAAU;AAC9B,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,CAAC;AAC3B,MAAMC,sBAAsB,GAAAF,OAAA,CAAAE,sBAAA,GAAG;EAC7BC,GAAG,EAAE;IACHC,IAAI,EAAE;EACR,CAAC;EACDC,MAAM,EAAE;IACND,IAAI,EAAE;EACR,CAAC;EACDE,MAAM,EAAE;IACNF,IAAI,EAAE;EACR,CAAC;EACDG,SAAS,EAAE;IACTH,IAAI,EAAE;EACR;AACF,CAAC;AAED,MAAMI,oBAAoB,GAAAR,OAAA,CAAAQ,oBAAA,GAAG,EAAE;AAC/B,MAAMC,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAAV,OAAA,CAAAU,SAAA,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAAb,OAAA,CAAAa,UAAA,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,SAAS,GAAAhB,OAAA,CAAAgB,SAAA,GAAG,UAAU;AAC5B,MAAMC,IAAI,GAAAjB,OAAA,CAAAiB,IAAA,GAAG,MAAM;AAEnB,MAAMC,GAAG,GAAAlB,OAAA,CAAAkB,GAAA,GAAG,KAAK;AACjB,MAAMC,wBAAwB,GAAAnB,OAAA,CAAAmB,wBAAA,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC;AACtE,MAAMC,OAAO,GAAApB,OAAA,CAAAoB,OAAA,GAAG,SAAS;AACzB,MAAMC,OAAO,GAAArB,OAAA,CAAAqB,OAAA,GAAG,SAAS;AACzB,MAAMC,MAAM,GAAAtB,OAAA,CAAAsB,MAAA,GAAG,QAAQ;AACvB,MAAMC,IAAI,GAAAvB,OAAA,CAAAuB,IAAA,GAAG,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","exports","ONE_FILE_AS_LIMIT","AVAILABLE_FILTER_TYPES","all","type","images","videos","documents","MEDIA_LIST_ITEM_SIZE","MEDIA_OVER_SCAN_COUNT","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","STORE_KEY","NAME","ALL","INVALID_STORE_KEY_VALUES","PREVIEW","REORDER","IMAGES","MORE","FILE_DEFAULT_PROPS"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'media-ui';\nconst ONE_FILE_AS_LIMIT = 1;\nconst AVAILABLE_FILTER_TYPES = {\n all: {\n type: 'all'\n },\n images: {\n type: 'image'\n },\n videos: {\n type: 'video'\n },\n documents: {\n type: 'text'\n }\n};\n\nconst MEDIA_LIST_ITEM_SIZE = 97;\nconst MEDIA_OVER_SCAN_COUNT = 0;\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst STORE_KEY = 'storeKey';\nconst NAME = 'name';\n\nconst ALL = 'all';\nconst INVALID_STORE_KEY_VALUES = [null, '', 'Please Choose...', 'Any'];\nconst PREVIEW = 'Preview';\nconst REORDER = 'Reorder';\nconst IMAGES = 'Images';\nconst MORE = 'more ...';\n\nconst FILE_DEFAULT_PROPS = [\n 'id',\n 'location',\n 'mimetype',\n 'url',\n 'data',\n 'name',\n 'storeKey',\n 'filename',\n 'type',\n 'updated'\n];\n\nexport {\n ALL,\n AVAILABLE_FILTER_TYPES,\n IMAGES,\n INVALID_STORE_KEY_VALUES,\n MEDIA_LIST_ITEM_SIZE,\n MEDIA_OVER_SCAN_COUNT,\n MORE,\n NAME,\n ONE_FILE_AS_LIMIT,\n PLUGIN_NAME,\n PREVIEW,\n REORDER,\n STORE_KEY,\n ICON_SIZE,\n ICON_COLOR,\n FILE_DEFAULT_PROPS\n};\n"],"mappings":";;;;;;AAAA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,UAAU;AAC9B,MAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,CAAC;AAC3B,MAAMC,sBAAsB,GAAAF,OAAA,CAAAE,sBAAA,GAAG;EAC7BC,GAAG,EAAE;IACHC,IAAI,EAAE;EACR,CAAC;EACDC,MAAM,EAAE;IACND,IAAI,EAAE;EACR,CAAC;EACDE,MAAM,EAAE;IACNF,IAAI,EAAE;EACR,CAAC;EACDG,SAAS,EAAE;IACTH,IAAI,EAAE;EACR;AACF,CAAC;AAED,MAAMI,oBAAoB,GAAAR,OAAA,CAAAQ,oBAAA,GAAG,EAAE;AAC/B,MAAMC,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAAV,OAAA,CAAAU,SAAA,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAAb,OAAA,CAAAa,UAAA,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,SAAS,GAAAhB,OAAA,CAAAgB,SAAA,GAAG,UAAU;AAC5B,MAAMC,IAAI,GAAAjB,OAAA,CAAAiB,IAAA,GAAG,MAAM;AAEnB,MAAMC,GAAG,GAAAlB,OAAA,CAAAkB,GAAA,GAAG,KAAK;AACjB,MAAMC,wBAAwB,GAAAnB,OAAA,CAAAmB,wBAAA,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC;AACtE,MAAMC,OAAO,GAAApB,OAAA,CAAAoB,OAAA,GAAG,SAAS;AACzB,MAAMC,OAAO,GAAArB,OAAA,CAAAqB,OAAA,GAAG,SAAS;AACzB,MAAMC,MAAM,GAAAtB,OAAA,CAAAsB,MAAA,GAAG,QAAQ;AACvB,MAAMC,IAAI,GAAAvB,OAAA,CAAAuB,IAAA,GAAG,UAAU;AAEvB,MAAMC,kBAAkB,GAAAxB,OAAA,CAAAwB,kBAAA,GAAG,CACzB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,MAAM,EACN,SAAS,CACV","ignoreList":[]}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import More from '@blaze-react/more';
|
|
3
|
-
import Button from '@blaze-react/button';
|
|
1
|
+
import React, { useState, useCallback } from 'react';
|
|
4
2
|
import { DeleteAction } from '@blaze-cms/admin';
|
|
5
3
|
import PropTypes from 'prop-types';
|
|
6
4
|
import { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';
|
|
7
|
-
import { useMutation, useApolloClient } from '@apollo/client';
|
|
5
|
+
import { useMutation, useApolloClient, useQuery } from '@apollo/client';
|
|
8
6
|
import classnames from 'classnames';
|
|
9
7
|
import { useToasts } from '@blaze-react/toaster';
|
|
10
8
|
import Modal from '@blaze-react/modal';
|
|
11
9
|
import { createPortal } from 'react-dom';
|
|
12
10
|
import { Link } from 'react-router-dom';
|
|
11
|
+
import { DeleteIcon, EditIcon } from '@blaze-cms/plugin-page-builder-ui';
|
|
13
12
|
import EditMediaFile from '../EditMediaFile';
|
|
14
13
|
import bustUrl from '../../utils/bustUrl';
|
|
15
14
|
const CardMedia = ({
|
|
@@ -38,6 +37,16 @@ const CardMedia = ({
|
|
|
38
37
|
const [deleteFile] = useMutation(getMutation('DELETE_FILE_BY_ID'));
|
|
39
38
|
const [type, extension] = mimetype.split('/');
|
|
40
39
|
const client = useApolloClient();
|
|
40
|
+
const {
|
|
41
|
+
data: {
|
|
42
|
+
getEntitySchemas: [schemaData] = []
|
|
43
|
+
} = {},
|
|
44
|
+
loading: schemaLoading
|
|
45
|
+
} = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
|
|
46
|
+
variables: {
|
|
47
|
+
identifier: 'file'
|
|
48
|
+
}
|
|
49
|
+
});
|
|
41
50
|
const deleteFileById = async () => {
|
|
42
51
|
setDisplayDeleteModal(false);
|
|
43
52
|
try {
|
|
@@ -62,24 +71,33 @@ const CardMedia = ({
|
|
|
62
71
|
});
|
|
63
72
|
}
|
|
64
73
|
};
|
|
65
|
-
const
|
|
74
|
+
const handleRowClick = () => onSelected({
|
|
75
|
+
id,
|
|
76
|
+
url,
|
|
77
|
+
name,
|
|
78
|
+
data
|
|
79
|
+
});
|
|
80
|
+
const handleCheckboxToggle = useCallback(e => {
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
e.stopPropagation();
|
|
66
83
|
onSelected({
|
|
67
84
|
id,
|
|
68
85
|
url,
|
|
69
86
|
name,
|
|
70
87
|
data
|
|
71
88
|
});
|
|
89
|
+
}, [id, url, name, data, onSelected]);
|
|
90
|
+
const handleKeyDown = e => {
|
|
91
|
+
if (e.key === ' ' || e.key === 'Enter') {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
handleRowClick();
|
|
94
|
+
}
|
|
72
95
|
};
|
|
73
|
-
const cardMediaClassNames = classnames('card card--media-list', {
|
|
74
|
-
'card--media-list--selected': selected
|
|
75
|
-
[`card--media-${displayLayout}`]: displayLayout
|
|
96
|
+
const cardMediaClassNames = classnames('card card--media-list card--media-list-row', `card--media-${displayLayout}`, {
|
|
97
|
+
'card--media-list--selected': selected
|
|
76
98
|
});
|
|
77
|
-
const handleCloseModal = () =>
|
|
78
|
-
|
|
79
|
-
};
|
|
80
|
-
const handleSaveButtonStatus = state => {
|
|
81
|
-
setEnableSaveButton(state);
|
|
82
|
-
};
|
|
99
|
+
const handleCloseModal = () => setDisplayEditModal(false);
|
|
100
|
+
const handleSaveButtonStatus = state => setEnableSaveButton(state);
|
|
83
101
|
const modalActions = [{
|
|
84
102
|
textButton: 'Cancel',
|
|
85
103
|
callback: handleCloseModal,
|
|
@@ -89,9 +107,8 @@ const CardMedia = ({
|
|
|
89
107
|
callback: () => handleFormSave(),
|
|
90
108
|
modifiers: enableSaveButton ? [] : ['disabled']
|
|
91
109
|
}];
|
|
92
|
-
const handleFileChange = file =>
|
|
93
|
-
|
|
94
|
-
};
|
|
110
|
+
const handleFileChange = file => setFileData(file);
|
|
111
|
+
const handleStopPropagation = e => e.stopPropagation();
|
|
95
112
|
const handleFormSave = async () => {
|
|
96
113
|
try {
|
|
97
114
|
const {
|
|
@@ -101,7 +118,7 @@ const CardMedia = ({
|
|
|
101
118
|
} = await client.mutate({
|
|
102
119
|
mutation: getMutation('UPDATE_FILE'),
|
|
103
120
|
variables: {
|
|
104
|
-
input: fileData
|
|
121
|
+
input: fileData.formData
|
|
105
122
|
},
|
|
106
123
|
update(cache, {
|
|
107
124
|
data: {
|
|
@@ -137,6 +154,7 @@ const CardMedia = ({
|
|
|
137
154
|
handleCloseModal();
|
|
138
155
|
setEnableSaveButton(false);
|
|
139
156
|
};
|
|
157
|
+
if (schemaLoading) return null;
|
|
140
158
|
return /*#__PURE__*/React.createElement(React.Fragment, null, displayEditModal && createPortal(/*#__PURE__*/React.createElement(Modal, {
|
|
141
159
|
title: "Edit",
|
|
142
160
|
actions: modalActions,
|
|
@@ -146,16 +164,28 @@ const CardMedia = ({
|
|
|
146
164
|
fileId: id,
|
|
147
165
|
handleSaveButtonStatus: handleSaveButtonStatus,
|
|
148
166
|
handleFormSave: handleFormSave,
|
|
149
|
-
enableSaveButton: enableSaveButton
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
role: "button",
|
|
153
|
-
onClick: handleClick
|
|
154
|
-
}, displayDeleteModal && createPortal(/*#__PURE__*/React.createElement(DeleteAction, {
|
|
167
|
+
enableSaveButton: enableSaveButton,
|
|
168
|
+
schemaData: schemaData
|
|
169
|
+
})), modalTargetRef.current), displayDeleteModal && createPortal(/*#__PURE__*/React.createElement(DeleteAction, {
|
|
155
170
|
onClose: () => setDisplayDeleteModal(false),
|
|
156
171
|
deleteAction: () => deleteFileById(),
|
|
157
172
|
itemName: name
|
|
158
|
-
}), modalTargetRef.current),
|
|
173
|
+
}), modalTargetRef.current), /*#__PURE__*/React.createElement("div", {
|
|
174
|
+
className: cardMediaClassNames,
|
|
175
|
+
role: "option",
|
|
176
|
+
"aria-selected": selected,
|
|
177
|
+
tabIndex: 0,
|
|
178
|
+
onClick: handleRowClick,
|
|
179
|
+
onKeyDown: handleKeyDown
|
|
180
|
+
}, openEditInModal && /*#__PURE__*/React.createElement("div", {
|
|
181
|
+
className: "card__select"
|
|
182
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
183
|
+
type: "checkbox",
|
|
184
|
+
"aria-label": `Select ${name}`,
|
|
185
|
+
checked: !!selected,
|
|
186
|
+
onChange: handleCheckboxToggle,
|
|
187
|
+
onClick: handleStopPropagation
|
|
188
|
+
})), type === 'image' ? /*#__PURE__*/React.createElement("div", {
|
|
159
189
|
className: `card__image card__image--media-${displayLayout}`
|
|
160
190
|
}, /*#__PURE__*/React.createElement("img", {
|
|
161
191
|
src: bustUrl(url, updated),
|
|
@@ -166,7 +196,8 @@ const CardMedia = ({
|
|
|
166
196
|
xmlns: "http://www.w3.org/2000/svg",
|
|
167
197
|
width: "100",
|
|
168
198
|
height: "100",
|
|
169
|
-
viewBox: "0 0 8 8"
|
|
199
|
+
viewBox: "0 0 8 8",
|
|
200
|
+
"aria-hidden": "true"
|
|
170
201
|
}, /*#__PURE__*/React.createElement("path", {
|
|
171
202
|
d: "M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z"
|
|
172
203
|
}))), /*#__PURE__*/React.createElement("footer", {
|
|
@@ -175,36 +206,48 @@ const CardMedia = ({
|
|
|
175
206
|
className: `card__details card__details--media-${displayLayout}`
|
|
176
207
|
}, /*#__PURE__*/React.createElement("div", {
|
|
177
208
|
className: `card__title card__title--media-${displayLayout}`
|
|
178
|
-
}, /*#__PURE__*/React.createElement("h2",
|
|
179
|
-
className:
|
|
180
|
-
}, /*#__PURE__*/React.createElement("
|
|
181
|
-
className: "
|
|
182
|
-
}, /*#__PURE__*/React.createElement(
|
|
183
|
-
|
|
184
|
-
}, /*#__PURE__*/React.createElement(
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
event.preventDefault();
|
|
193
|
-
event.stopPropagation();
|
|
209
|
+
}, /*#__PURE__*/React.createElement("h2", {
|
|
210
|
+
className: "card__file-name"
|
|
211
|
+
}, name)), /*#__PURE__*/React.createElement("p", {
|
|
212
|
+
className: "card__meta"
|
|
213
|
+
}, /*#__PURE__*/React.createElement("span", null, "Format: ", extension))), /*#__PURE__*/React.createElement("div", {
|
|
214
|
+
className: `card__menu card__menu--icons card__menu--${displayLayout}`
|
|
215
|
+
}, openEditInModal ? /*#__PURE__*/React.createElement("button", {
|
|
216
|
+
type: "button",
|
|
217
|
+
className: "card__icon-btn",
|
|
218
|
+
title: "Edit",
|
|
219
|
+
"aria-label": "Edit",
|
|
220
|
+
onClick: e => {
|
|
221
|
+
e.preventDefault();
|
|
222
|
+
e.stopPropagation();
|
|
194
223
|
setDisplayEditModal(true);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
224
|
+
}
|
|
225
|
+
}, /*#__PURE__*/React.createElement(EditIcon, {
|
|
226
|
+
width: "20px",
|
|
227
|
+
height: "20px"
|
|
228
|
+
})) : /*#__PURE__*/React.createElement(Link, {
|
|
198
229
|
to: `/media/edit/${id}`,
|
|
199
|
-
className: "
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
230
|
+
className: "card__icon-btn",
|
|
231
|
+
title: "Edit",
|
|
232
|
+
"aria-label": "Edit",
|
|
233
|
+
onClick: e => e.stopPropagation()
|
|
234
|
+
}, /*#__PURE__*/React.createElement(EditIcon, {
|
|
235
|
+
width: "20px",
|
|
236
|
+
height: "20px"
|
|
237
|
+
})), /*#__PURE__*/React.createElement("button", {
|
|
238
|
+
type: "button",
|
|
239
|
+
className: "card__icon-btn",
|
|
240
|
+
title: "Delete",
|
|
241
|
+
"aria-label": "Delete",
|
|
242
|
+
onClick: e => {
|
|
243
|
+
e.preventDefault();
|
|
244
|
+
e.stopPropagation();
|
|
204
245
|
setDisplayDeleteModal(true);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
|
|
246
|
+
}
|
|
247
|
+
}, /*#__PURE__*/React.createElement(DeleteIcon, {
|
|
248
|
+
width: "18px",
|
|
249
|
+
height: "18px"
|
|
250
|
+
}))))));
|
|
208
251
|
};
|
|
209
252
|
CardMedia.propTypes = {
|
|
210
253
|
name: PropTypes.string.isRequired,
|
|
@@ -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","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
|
+
{"version":3,"file":"CardMedia.js","names":["React","useState","useCallback","DeleteAction","PropTypes","getQuery","getMutation","useMutation","useApolloClient","useQuery","classnames","useToasts","Modal","createPortal","Link","DeleteIcon","EditIcon","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","getEntitySchemas","schemaData","loading","schemaLoading","variables","identifier","deleteFileById","input","appearance","autoDismiss","error","message","handleRowClick","handleCheckboxToggle","e","preventDefault","stopPropagation","handleKeyDown","key","cardMediaClassNames","handleCloseModal","handleSaveButtonStatus","state","modalActions","textButton","callback","modifiers","handleFormSave","handleFileChange","file","handleStopPropagation","updatedFile","mutate","mutation","formData","update","cache","fileUpdated","writeQuery","query","result","console","createElement","Fragment","title","actions","onClose","onChange","fileId","current","deleteAction","itemName","className","role","tabIndex","onClick","onKeyDown","checked","src","alt","xmlns","width","height","viewBox","d","to","propTypes","string","isRequired","object","oneOfType","number","func","bool","defaultProps"],"sources":["../../../src/components/CardMedia/CardMedia.js"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { DeleteAction } from '@blaze-cms/admin';\nimport PropTypes from 'prop-types';\nimport { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';\nimport { useMutation, useApolloClient, useQuery } 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 { DeleteIcon, EditIcon } from '@blaze-cms/plugin-page-builder-ui';\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 { data: { getEntitySchemas: [schemaData] = [] } = {}, loading: schemaLoading } = useQuery(\n getQuery('GET_ENTITY_SCHEMA'),\n {\n variables: { identifier: 'file' }\n }\n );\n\n const deleteFileById = async () => {\n setDisplayDeleteModal(false);\n try {\n await deleteFile({ variables: { input: { id } } });\n removeFile({ index });\n addToast(`File: ${name} has been deleted`, { appearance: 'success', autoDismiss: true });\n } catch (error) {\n addToast(error.message, { appearance: 'error', autoDismiss: true });\n }\n };\n\n const handleRowClick = () => onSelected({ id, url, name, data });\n\n const handleCheckboxToggle = useCallback(\n e => {\n e.preventDefault();\n e.stopPropagation();\n onSelected({ id, url, name, data });\n },\n [id, url, name, data, onSelected]\n );\n\n const handleKeyDown = e => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n handleRowClick();\n }\n };\n\n const cardMediaClassNames = classnames(\n 'card card--media-list card--media-list-row',\n `card--media-${displayLayout}`,\n { 'card--media-list--selected': selected }\n );\n\n const handleCloseModal = () => setDisplayEditModal(false);\n const handleSaveButtonStatus = state => setEnableSaveButton(state);\n\n const modalActions = [\n { textButton: 'Cancel', callback: handleCloseModal, modifiers: ['cancel'] },\n {\n textButton: 'Apply',\n callback: () => handleFormSave(),\n modifiers: enableSaveButton ? [] : ['disabled']\n }\n ];\n\n const handleFileChange = file => setFileData(file);\n\n const handleStopPropagation = e => e.stopPropagation();\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.formData },\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 if (schemaLoading) return null;\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 schemaData={schemaData}\n />\n </Modal>,\n modalTargetRef.current\n )}\n\n {displayDeleteModal &&\n createPortal(\n <DeleteAction\n onClose={() => setDisplayDeleteModal(false)}\n deleteAction={() => deleteFileById()}\n itemName={name}\n />,\n modalTargetRef.current\n )}\n\n <div\n className={cardMediaClassNames}\n role=\"option\"\n aria-selected={selected}\n tabIndex={0}\n onClick={handleRowClick}\n onKeyDown={handleKeyDown}>\n {openEditInModal && (\n <div className=\"card__select\">\n <input\n type=\"checkbox\"\n aria-label={`Select ${name}`}\n checked={!!selected}\n onChange={handleCheckboxToggle}\n onClick={handleStopPropagation}\n />\n </div>\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\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100\"\n height=\"100\"\n viewBox=\"0 0 8 8\"\n aria-hidden=\"true\">\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 className=\"card__file-name\">{name}</h2>\n </div>\n <p className=\"card__meta\">\n <span>Format: {extension}</span>\n </p>\n </div>\n\n <div className={`card__menu card__menu--icons card__menu--${displayLayout}`}>\n {openEditInModal ? (\n <button\n type=\"button\"\n className=\"card__icon-btn\"\n title=\"Edit\"\n aria-label=\"Edit\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n setDisplayEditModal(true);\n }}>\n <EditIcon width=\"20px\" height=\"20px\" />\n </button>\n ) : (\n <Link\n to={`/media/edit/${id}`}\n className=\"card__icon-btn\"\n title=\"Edit\"\n aria-label=\"Edit\"\n onClick={e => e.stopPropagation()}>\n <EditIcon width=\"20px\" height=\"20px\" />\n </Link>\n )}\n\n <button\n type=\"button\"\n className=\"card__icon-btn\"\n title=\"Delete\"\n aria-label=\"Delete\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n setDisplayDeleteModal(true);\n }}>\n <DeleteIcon width=\"18px\" height=\"18px\" />\n </button>\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,33 +1,32 @@
|
|
|
1
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
const _excluded = ["__typename"];
|
|
4
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
4
|
import React, { useState, useEffect } from 'react';
|
|
7
5
|
import PropTypes from 'prop-types';
|
|
8
|
-
import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
6
|
+
import { getQuery, getDynamicQuery } from '@blaze-cms/admin-ui-utils';
|
|
9
7
|
import { useQuery } from '@apollo/client';
|
|
10
8
|
import { useToasts } from '@blaze-react/toaster';
|
|
11
9
|
import FilePreview from '../FilePreview';
|
|
12
10
|
import FileUploadModal from '../FileUploadModal';
|
|
13
|
-
import {
|
|
11
|
+
import { FILE_DEFAULT_PROPS } from '../../constants';
|
|
14
12
|
const EditMediaFile = ({
|
|
15
13
|
onChange,
|
|
16
14
|
handleSaveButtonStatus,
|
|
17
15
|
fileId,
|
|
18
16
|
showChangeButton,
|
|
19
|
-
fileUpdated
|
|
17
|
+
fileUpdated,
|
|
18
|
+
schemaData
|
|
20
19
|
}) => {
|
|
21
20
|
const [formValues, setFormValues] = useState(null);
|
|
22
21
|
const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);
|
|
23
22
|
const {
|
|
24
23
|
addToast
|
|
25
24
|
} = useToasts();
|
|
26
|
-
const fileQuery =
|
|
25
|
+
const fileQuery = getDynamicQuery('DATA_QUERY')(schemaData, fileId, null, FILE_DEFAULT_PROPS);
|
|
27
26
|
const {
|
|
28
27
|
loading,
|
|
29
28
|
data: {
|
|
30
|
-
file
|
|
29
|
+
entityData: file
|
|
31
30
|
} = {},
|
|
32
31
|
refetch: refetchFile
|
|
33
32
|
} = useQuery(fileQuery, {
|
|
@@ -67,45 +66,30 @@ const EditMediaFile = ({
|
|
|
67
66
|
valuesChecked
|
|
68
67
|
}) => {
|
|
69
68
|
const baseFile = formValues || file;
|
|
70
|
-
const
|
|
71
|
-
id
|
|
72
|
-
}) => id !== NAME && id !== STORE_KEY);
|
|
73
|
-
const dataValues = valuesCheckedWithoutName.reduce((acc, {
|
|
69
|
+
const dataValues = valuesChecked.reduce((acc, {
|
|
74
70
|
id,
|
|
75
|
-
value
|
|
71
|
+
value,
|
|
72
|
+
isDataPropery
|
|
76
73
|
}) => {
|
|
77
|
-
|
|
74
|
+
if (isDataPropery) {
|
|
75
|
+
acc.data[id] = value;
|
|
76
|
+
} else {
|
|
77
|
+
acc[id] = value;
|
|
78
|
+
}
|
|
78
79
|
return acc;
|
|
79
|
-
}, {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const {
|
|
86
|
-
value: storeKey
|
|
87
|
-
} = valuesChecked.find(({
|
|
88
|
-
id
|
|
89
|
-
}) => id === STORE_KEY) || {};
|
|
80
|
+
}, {
|
|
81
|
+
id: baseFile.id,
|
|
82
|
+
data: _objectSpread({}, baseFile.data)
|
|
83
|
+
});
|
|
84
|
+
delete dataValues.data.__typename; // Remove __typename if it exists in data to avoid issues with Apollo cache.
|
|
85
|
+
|
|
90
86
|
const shouldEnableSaveButton = isNewValueSet && isValid;
|
|
91
87
|
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
|
+
const updatedFile = _objectSpread(_objectSpread({}, baseFile), dataValues);
|
|
97
89
|
setFormValues(updatedFile);
|
|
98
|
-
|
|
99
|
-
|
|
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
|
+
onChange(_objectSpread(_objectSpread({}, updatedFile), {}, {
|
|
91
|
+
formData: dataValues
|
|
92
|
+
}));
|
|
109
93
|
};
|
|
110
94
|
const getFileWithStoreType = sourceFile => {
|
|
111
95
|
const base = sourceFile || file;
|
|
@@ -155,7 +139,7 @@ const EditMediaFile = ({
|
|
|
155
139
|
if (loading) return /*#__PURE__*/React.createElement("div", null, "loading...");
|
|
156
140
|
const fileToRender = formValues || file;
|
|
157
141
|
const fileWithStoreType = getFileWithStoreType(fileToRender);
|
|
158
|
-
return
|
|
142
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, !!file && /*#__PURE__*/React.createElement(FilePreview, {
|
|
159
143
|
file: fileWithStoreType,
|
|
160
144
|
handleFormChange: handleFormChange,
|
|
161
145
|
handleChangeFile: () => setDisplayFileUploadModal(true),
|
|
@@ -170,7 +154,7 @@ const EditMediaFile = ({
|
|
|
170
154
|
fileId: fileId,
|
|
171
155
|
storeKey: file && file.storeKey,
|
|
172
156
|
getSelectedFiles: () => {}
|
|
173
|
-
})))
|
|
157
|
+
})));
|
|
174
158
|
};
|
|
175
159
|
EditMediaFile.propTypes = {
|
|
176
160
|
fileId: PropTypes.string.isRequired,
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
1
|
+
{"version":3,"file":"EditMediaFile.js","names":["React","useState","useEffect","PropTypes","getQuery","getDynamicQuery","useQuery","useToasts","FilePreview","FileUploadModal","FILE_DEFAULT_PROPS","EditMediaFile","onChange","handleSaveButtonStatus","fileId","showChangeButton","fileUpdated","schemaData","formValues","setFormValues","displayFileUploadModal","setDisplayFileUploadModal","addToast","fileQuery","loading","data","entityData","file","refetch","refetchFile","variables","id","fetchPolicy","fileStoresType","getFileStores","storeType","visibleInAdmin","prevFormValues","updated","handleFormChange","isValid","isNewValueSet","valuesChecked","baseFile","dataValues","reduce","acc","value","isDataPropery","_objectSpread","__typename","shouldEnableSaveButton","updatedFile","formData","getFileWithStoreType","sourceFile","base","storeOptions","map","type","key","name","defaultStore","find","isDefault","store","closeModalAndSetValue","isSaving","values","toastMessage","appearance","autoDismiss","url","refreshedFile","timestamp","Date","now","createElement","fileToRender","fileWithStoreType","Fragment","handleChangeFile","displayForm","className","onClose","simpleLayout","storeKey","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, getDynamicQuery } 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 { FILE_DEFAULT_PROPS } from '../../constants';\n\nconst EditMediaFile = ({\n onChange,\n handleSaveButtonStatus,\n fileId,\n showChangeButton,\n fileUpdated,\n schemaData\n}) => {\n const [formValues, setFormValues] = useState(null);\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const { addToast } = useToasts();\n\n const fileQuery = getDynamicQuery('DATA_QUERY')(schemaData, fileId, null, FILE_DEFAULT_PROPS);\n const {\n loading,\n data: { entityData: 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\n const dataValues = valuesChecked.reduce(\n (acc, { id, value, isDataPropery }) => {\n if (isDataPropery) {\n acc.data[id] = value;\n } else {\n acc[id] = value;\n }\n return acc;\n },\n { id: baseFile.id, data: { ...baseFile.data } }\n );\n delete dataValues.data.__typename; // Remove __typename if it exists in data to avoid issues with Apollo cache.\n\n const shouldEnableSaveButton = isNewValueSet && isValid;\n handleSaveButtonStatus(shouldEnableSaveButton);\n\n const updatedFile = {\n ...baseFile,\n ...dataValues\n };\n\n setFormValues(updatedFile);\n onChange({ ...updatedFile, formData: dataValues });\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 (\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};\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":[]}
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { withRouter } from 'react-router-dom';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import Button from '@blaze-react/button';
|
|
5
|
-
import { useApolloClient } from '@apollo/client';
|
|
5
|
+
import { useApolloClient, useQuery } from '@apollo/client';
|
|
6
6
|
import { getQuery, getMutation } from '@blaze-cms/admin-ui-utils';
|
|
7
7
|
import { useToasts } from '@blaze-react/toaster';
|
|
8
8
|
import EditMediaFile from './EditMediaFile';
|
|
@@ -16,6 +16,16 @@ const EditMediaFilePage = ({
|
|
|
16
16
|
const {
|
|
17
17
|
addToast
|
|
18
18
|
} = useToasts();
|
|
19
|
+
const {
|
|
20
|
+
data: {
|
|
21
|
+
getEntitySchemas: [schemaData] = []
|
|
22
|
+
} = {},
|
|
23
|
+
loading: schemaLoading
|
|
24
|
+
} = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
|
|
25
|
+
variables: {
|
|
26
|
+
identifier: 'file'
|
|
27
|
+
}
|
|
28
|
+
});
|
|
19
29
|
const handleFileChange = values => setFile(values);
|
|
20
30
|
const handleSaveButtonStatus = value => {
|
|
21
31
|
setShouldEnableSaveButton(value);
|
|
@@ -29,12 +39,7 @@ const EditMediaFilePage = ({
|
|
|
29
39
|
return;
|
|
30
40
|
}
|
|
31
41
|
try {
|
|
32
|
-
const inputData =
|
|
33
|
-
id: file.id,
|
|
34
|
-
name: file.name,
|
|
35
|
-
data: file.data,
|
|
36
|
-
storeKey: file.storeKey
|
|
37
|
-
};
|
|
42
|
+
const inputData = file.formData;
|
|
38
43
|
const {
|
|
39
44
|
data: {
|
|
40
45
|
updateFile: updatedFile
|
|
@@ -79,6 +84,7 @@ const EditMediaFilePage = ({
|
|
|
79
84
|
};
|
|
80
85
|
const pushBack = () => history.push('/media');
|
|
81
86
|
const buttonModifiers = shouldEnableSaveButton ? [] : ['disabled'];
|
|
87
|
+
if (schemaLoading) return null;
|
|
82
88
|
return /*#__PURE__*/React.createElement("div", {
|
|
83
89
|
className: "page"
|
|
84
90
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -91,7 +97,8 @@ const EditMediaFilePage = ({
|
|
|
91
97
|
handleSaveButtonStatus: handleSaveButtonStatus,
|
|
92
98
|
handleFormSave: handleFormSave,
|
|
93
99
|
showChangeButton: true,
|
|
94
|
-
fileUpdated: file
|
|
100
|
+
fileUpdated: file,
|
|
101
|
+
schemaData: schemaData
|
|
95
102
|
}), /*#__PURE__*/React.createElement("div", {
|
|
96
103
|
className: "page__content__mediaWrapperActions"
|
|
97
104
|
}, /*#__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","
|
|
1
|
+
{"version":3,"file":"EditMediaFilePage.js","names":["React","useState","withRouter","PropTypes","Button","useApolloClient","useQuery","getQuery","getMutation","useToasts","EditMediaFile","EditMediaFilePage","match","history","shouldEnableSaveButton","setShouldEnableSaveButton","file","setFile","client","addToast","data","getEntitySchemas","schemaData","loading","schemaLoading","variables","identifier","handleFileChange","values","handleSaveButtonStatus","value","handleFormSave","appearance","autoDismiss","inputData","formData","updateFile","updatedFile","mutate","mutation","input","update","cache","fileUpdated","writeQuery","query","id","params","fileId","result","e","console","error","name","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, useQuery } 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 { data: { getEntitySchemas: [schemaData] = [] } = {}, loading: schemaLoading } = useQuery(\n getQuery('GET_ENTITY_SCHEMA'),\n {\n variables: { identifier: 'file' }\n }\n );\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 = file.formData;\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 if (schemaLoading) return null;\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 schemaData={schemaData}\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":[]}
|