@blaze-cms/plugin-media-ui 0.146.0-node18-core-styles.2 → 0.146.0-node18-core-styles-tooltips.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -12
- package/lib/components/EditMediaFile/EditMediaFile.js +63 -9
- package/lib/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib/components/EditorAdapter/EditorAdapter.js +14 -5
- package/lib/components/EditorAdapter/EditorAdapter.js.map +1 -1
- package/lib/components/FilePreview/Actions/index.js +2 -2
- package/lib/components/FilePreview/Actions/index.js.map +1 -1
- package/lib/components/FilePreview/Image/Image.js +11 -3
- package/lib/components/FilePreview/Image/Image.js.map +1 -1
- package/lib/components/FilePreview/Image/imageSchema.js +1 -1
- package/lib/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib/components/FilePreview/index.js +6 -2
- package/lib/components/FilePreview/index.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FileList.js +2 -2
- package/lib/components/FilePreviewReadOnly/FileList.js.map +1 -1
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js +30 -20
- package/lib/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js +7 -1
- package/lib/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib/components/FileUploadModal/FileUploadModal.js +32 -12
- package/lib/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/lib-es/components/EditMediaFile/EditMediaFile.js +43 -11
- package/lib-es/components/EditMediaFile/EditMediaFile.js.map +1 -1
- package/lib-es/components/EditorAdapter/EditorAdapter.js +15 -6
- package/lib-es/components/EditorAdapter/EditorAdapter.js.map +1 -1
- package/lib-es/components/FilePreview/Actions/index.js +2 -2
- package/lib-es/components/FilePreview/Actions/index.js.map +1 -1
- package/lib-es/components/FilePreview/Image/Image.js +11 -3
- package/lib-es/components/FilePreview/Image/Image.js.map +1 -1
- package/lib-es/components/FilePreview/Image/imageSchema.js +1 -1
- package/lib-es/components/FilePreview/Image/imageSchema.js.map +1 -1
- package/lib-es/components/FilePreview/index.js +6 -2
- package/lib-es/components/FilePreview/index.js.map +1 -1
- package/lib-es/components/FilePreviewReadOnly/FileList.js +2 -2
- package/lib-es/components/FilePreviewReadOnly/FileList.js.map +1 -1
- package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js +14 -12
- package/lib-es/components/FilePreviewReadOnly/FilePreviewReadOnly.js.map +1 -1
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js +7 -1
- package/lib-es/components/FileUploadAdapter/FileUploadAdapter.js.map +1 -1
- package/lib-es/components/FileUploadModal/FileUploadModal.js +31 -16
- package/lib-es/components/FileUploadModal/FileUploadModal.js.map +1 -1
- package/package.json +10 -9
- package/src/components/EditMediaFile/EditMediaFile.js +56 -28
- package/src/components/EditorAdapter/EditorAdapter.js +19 -4
- package/src/components/FilePreview/Actions/index.js +25 -27
- package/src/components/FilePreview/Image/Image.js +9 -2
- package/src/components/FilePreview/Image/imageSchema.js +1 -1
- package/src/components/FilePreview/index.js +17 -2
- package/src/components/FilePreviewReadOnly/FileList.js +1 -3
- package/src/components/FilePreviewReadOnly/FilePreviewReadOnly.js +17 -29
- package/src/components/FileUploadAdapter/FileUploadAdapter.js +7 -1
- package/src/components/FileUploadModal/FileUploadModal.js +44 -30
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditMediaFile.js","names":["React","useState","useEffect","PropTypes","getQuery","useQuery","FilePreview","STORE_KEY","NAME","EditMediaFile","onChange","handleSaveButtonStatus","enableSaveButton","fileId","formValues","setFormValues","
|
|
1
|
+
{"version":3,"file":"EditMediaFile.js","names":["React","useState","useEffect","PropTypes","getQuery","useQuery","useToasts","FilePreview","FileUploadModal","STORE_KEY","NAME","EditMediaFile","onChange","handleSaveButtonStatus","enableSaveButton","fileId","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","fileWithStoreType","createElement","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 = ({ onChange, handleSaveButtonStatus, enableSaveButton, fileId }) => {\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 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 const dataValues = valuesCheckedWithoutName.reduce((acc, { id, value }) => {\n acc[id] = value;\n return acc;\n }, {});\n const { value: newFileName } = valuesChecked.find(({ id }) => id === NAME) || {};\n const { value: storeKey } = valuesChecked.find(({ id }) => id === STORE_KEY) || {};\n const shouldEnableSaveButton = isNewValueSet && isValid;\n handleSaveButtonStatus(false);\n if (shouldEnableSaveButton && shouldEnableSaveButton !== enableSaveButton) {\n handleSaveButtonStatus(shouldEnableSaveButton);\n }\n const updatedFile = {\n id: file.id,\n name: newFileName,\n storeKey,\n data: dataValues\n };\n setFormValues(updatedFile);\n onChange(updatedFile);\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 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 const handleChangeFile = () => {\n setDisplayFileUploadModal(true);\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 />\n ) : null}\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};\nEditMediaFile.propTypes = {\n fileId: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n handleSaveButtonStatus: PropTypes.func.isRequired,\n enableSaveButton: PropTypes.bool\n};\nEditMediaFile.defaultProps = {\n enableSaveButton: false\n};\nexport default EditMediaFile;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
-
const _excluded = ["id", "value", "onChange", "error", "validationMessage", "label"];
|
|
2
|
+
const _excluded = ["id", "value", "onChange", "error", "validationMessage", "label", "tooltip"];
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import DraftEditor from '@blaze-react/drafteditor';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
+
import Tooltip from '@blaze-react/tooltip';
|
|
6
7
|
const DraftEditorAdapter = _ref => {
|
|
7
8
|
let {
|
|
8
9
|
id,
|
|
@@ -10,17 +11,23 @@ const DraftEditorAdapter = _ref => {
|
|
|
10
11
|
onChange,
|
|
11
12
|
error,
|
|
12
13
|
validationMessage,
|
|
13
|
-
label
|
|
14
|
+
label,
|
|
15
|
+
tooltip
|
|
14
16
|
} = _ref,
|
|
15
17
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
16
18
|
return /*#__PURE__*/React.createElement("div", {
|
|
17
19
|
className: "form-field form-field--full-width"
|
|
18
|
-
}, /*#__PURE__*/React.createElement("label", null,
|
|
20
|
+
}, /*#__PURE__*/React.createElement("label", null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
21
|
+
tooltipContent: tooltip
|
|
22
|
+
})), /*#__PURE__*/React.createElement(DraftEditor, {
|
|
19
23
|
name: id,
|
|
20
24
|
value: value,
|
|
21
25
|
onChange: onChange,
|
|
22
26
|
error: error,
|
|
23
|
-
validationMessage: validationMessage
|
|
27
|
+
validationMessage: validationMessage,
|
|
28
|
+
tooltip: {
|
|
29
|
+
tooltipContent: tooltip
|
|
30
|
+
}
|
|
24
31
|
}));
|
|
25
32
|
};
|
|
26
33
|
DraftEditorAdapter.propTypes = {
|
|
@@ -29,11 +36,13 @@ DraftEditorAdapter.propTypes = {
|
|
|
29
36
|
onChange: PropTypes.func.isRequired,
|
|
30
37
|
error: PropTypes.bool,
|
|
31
38
|
validationMessage: PropTypes.string,
|
|
32
|
-
label: PropTypes.string.isRequired
|
|
39
|
+
label: PropTypes.string.isRequired,
|
|
40
|
+
tooltip: PropTypes.string
|
|
33
41
|
};
|
|
34
42
|
DraftEditorAdapter.defaultProps = {
|
|
35
43
|
error: false,
|
|
36
|
-
validationMessage: undefined
|
|
44
|
+
validationMessage: undefined,
|
|
45
|
+
tooltip: ''
|
|
37
46
|
};
|
|
38
47
|
export default DraftEditorAdapter;
|
|
39
48
|
//# sourceMappingURL=EditorAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorAdapter.js","names":["React","DraftEditor","PropTypes","DraftEditorAdapter","_ref","id","value","onChange","error","validationMessage","label","props","_objectWithoutProperties","_excluded","createElement","className","name","propTypes","string","isRequired","func","bool","defaultProps","undefined"],"sources":["../../../src/components/EditorAdapter/EditorAdapter.js"],"sourcesContent":["import React from 'react';\nimport DraftEditor from '@blaze-react/drafteditor';\nimport PropTypes from 'prop-types';\n\nconst DraftEditorAdapter = ({
|
|
1
|
+
{"version":3,"file":"EditorAdapter.js","names":["React","DraftEditor","PropTypes","Tooltip","DraftEditorAdapter","_ref","id","value","onChange","error","validationMessage","label","tooltip","props","_objectWithoutProperties","_excluded","createElement","className","tooltipContent","name","propTypes","string","isRequired","func","bool","defaultProps","undefined"],"sources":["../../../src/components/EditorAdapter/EditorAdapter.js"],"sourcesContent":["import React from 'react';\nimport DraftEditor from '@blaze-react/drafteditor';\nimport PropTypes from 'prop-types';\nimport Tooltip from '@blaze-react/tooltip';\n\nconst DraftEditorAdapter = ({\n id,\n value,\n onChange,\n error,\n validationMessage,\n label,\n tooltip,\n ...props\n}) => (\n <div className=\"form-field form-field--full-width\">\n <label>\n <Tooltip tooltipContent={tooltip} />\n </label>\n <DraftEditor\n name={id}\n value={value}\n onChange={onChange}\n error={error}\n validationMessage={validationMessage}\n tooltip={{ tooltipContent: tooltip }}\n />\n </div>\n);\n\nDraftEditorAdapter.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.bool,\n validationMessage: PropTypes.string,\n label: PropTypes.string.isRequired,\n tooltip: PropTypes.string\n};\n\nDraftEditorAdapter.defaultProps = {\n error: false,\n validationMessage: undefined,\n tooltip: ''\n};\n\nexport default DraftEditorAdapter;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAM,0BAA0B;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,OAAO,MAAM,sBAAsB;AAE1C,MAAMC,kBAAkB,GAAGC,IAAA;EAAA,IAAC;MAC1BC,EAAE;MACFC,KAAK;MACLC,QAAQ;MACRC,KAAK;MACLC,iBAAiB;MACjBC,KAAK;MACLC;IAEF,CAAC,GAAAP,IAAA;IADIQ,KAAK,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA;EAAA,oBAERf,KAAA,CAAAgB,aAAA;IAAKC,SAAS,EAAC;EAAmC,gBAChDjB,KAAA,CAAAgB,aAAA,6BACEhB,KAAA,CAAAgB,aAAA,CAACb,OAAO;IAACe,cAAc,EAAEN;EAAQ,CAAE,CAC9B,CAAC,eACRZ,KAAA,CAAAgB,aAAA,CAACf,WAAW;IACVkB,IAAI,EAAEb,EAAG;IACTC,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAEA,KAAM;IACbC,iBAAiB,EAAEA,iBAAkB;IACrCE,OAAO,EAAE;MAAEM,cAAc,EAAEN;IAAQ;EAAE,CACtC,CACE,CAAC;AAAA,CACP;AAEDR,kBAAkB,CAACgB,SAAS,GAAG;EAC7Bd,EAAE,EAAEJ,SAAS,CAACmB,MAAM,CAACC,UAAU;EAC/Bf,KAAK,EAAEL,SAAS,CAACmB,MAAM,CAACC,UAAU;EAClCd,QAAQ,EAAEN,SAAS,CAACqB,IAAI,CAACD,UAAU;EACnCb,KAAK,EAAEP,SAAS,CAACsB,IAAI;EACrBd,iBAAiB,EAAER,SAAS,CAACmB,MAAM;EACnCV,KAAK,EAAET,SAAS,CAACmB,MAAM,CAACC,UAAU;EAClCV,OAAO,EAAEV,SAAS,CAACmB;AACrB,CAAC;AAEDjB,kBAAkB,CAACqB,YAAY,GAAG;EAChChB,KAAK,EAAE,KAAK;EACZC,iBAAiB,EAAEgB,SAAS;EAC5Bd,OAAO,EAAE;AACX,CAAC;AAED,eAAeR,kBAAkB","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ const Actions = ({
|
|
|
9
9
|
onUnselectFile
|
|
10
10
|
} = useContext(MediaContext);
|
|
11
11
|
const [, extension] = file.mimetype.split('/');
|
|
12
|
-
return /*#__PURE__*/React.createElement(
|
|
12
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
13
13
|
className: "FilePreviewItem__info__actions"
|
|
14
14
|
}, /*#__PURE__*/React.createElement("div", {
|
|
15
15
|
className: "FilePreviewItem__info__actions FilePreviewItem__info__actions--media-type"
|
|
@@ -29,7 +29,7 @@ const Actions = ({
|
|
|
29
29
|
onClick: () => onUnselectFile([file.id])
|
|
30
30
|
}, /*#__PURE__*/React.createElement("i", {
|
|
31
31
|
className: "fas fa-trash fa-xs"
|
|
32
|
-
}))))
|
|
32
|
+
}))));
|
|
33
33
|
};
|
|
34
34
|
Actions.propTypes = {
|
|
35
35
|
file: PropTypes.object.isRequired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useContext","PropTypes","MediaContext","Actions","file","handleEditModal","onUnselectFile","extension","mimetype","split","createElement","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useContext","PropTypes","MediaContext","Actions","file","handleEditModal","onUnselectFile","extension","mimetype","split","createElement","className","id","onClick","propTypes","object","isRequired"],"sources":["../../../../src/components/FilePreview/Actions/index.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MediaContext } from '../../../utils/media-context';\n\nconst Actions = ({ file }) => {\n const { handleEditModal, onUnselectFile } = useContext(MediaContext);\n const [, extension] = file.mimetype.split('/');\n\n return (\n <div className=\"FilePreviewItem__info__actions\">\n <div className=\"FilePreviewItem__info__actions FilePreviewItem__info__actions--media-type\">\n <i className=\"FilePreviewItem__info__actionsIcon material-icons\">insert_photo</i>{' '}\n <span>{extension}</span>\n </div>\n <div>\n {handleEditModal && (\n <div\n data-testid={`open-media-library-${file.id}`}\n className=\"FilePreviewItem__info__actionsIcon material-icons edit\"\n aria-hidden=\"true\"\n onClick={() => handleEditModal(file)}>\n <i className=\"fas fa-pen fa-xs\" />\n </div>\n )}\n {onUnselectFile && (\n <div\n data-testid={`unselect-${file.id}`}\n className=\"FilePreviewItem__info__actionsIcon material-icons delete\"\n aria-hidden=\"true\"\n onClick={() => onUnselectFile([file.id])}>\n <i className=\"fas fa-trash fa-xs\" />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nActions.propTypes = {\n file: PropTypes.object.isRequired\n};\n\nexport default Actions;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,YAAY,QAAQ,8BAA8B;AAE3D,MAAMC,OAAO,GAAGA,CAAC;EAAEC;AAAK,CAAC,KAAK;EAC5B,MAAM;IAAEC,eAAe;IAAEC;EAAe,CAAC,GAAGN,UAAU,CAACE,YAAY,CAAC;EACpE,MAAM,GAAGK,SAAS,CAAC,GAAGH,IAAI,CAACI,QAAQ,CAACC,KAAK,CAAC,GAAG,CAAC;EAE9C,oBACEV,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAgC,gBAC7CZ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAA2E,gBACxFZ,KAAA,CAAAW,aAAA;IAAGC,SAAS,EAAC;EAAmD,GAAC,cAAe,CAAC,EAAC,GAAG,eACrFZ,KAAA,CAAAW,aAAA,eAAOH,SAAgB,CACpB,CAAC,eACNR,KAAA,CAAAW,aAAA,cACGL,eAAe,iBACdN,KAAA,CAAAW,aAAA;IACE,eAAa,sBAAsBN,IAAI,CAACQ,EAAE,EAAG;IAC7CD,SAAS,EAAC,wDAAwD;IAClE,eAAY,MAAM;IAClBE,OAAO,EAAEA,CAAA,KAAMR,eAAe,CAACD,IAAI;EAAE,gBACrCL,KAAA,CAAAW,aAAA;IAAGC,SAAS,EAAC;EAAkB,CAAE,CAC9B,CACN,EACAL,cAAc,iBACbP,KAAA,CAAAW,aAAA;IACE,eAAa,YAAYN,IAAI,CAACQ,EAAE,EAAG;IACnCD,SAAS,EAAC,0DAA0D;IACpE,eAAY,MAAM;IAClBE,OAAO,EAAEA,CAAA,KAAMP,cAAc,CAAC,CAACF,IAAI,CAACQ,EAAE,CAAC;EAAE,gBACzCb,KAAA,CAAAW,aAAA;IAAGC,SAAS,EAAC;EAAoB,CAAE,CAChC,CAEJ,CACF,CAAC;AAEV,CAAC;AAEDR,OAAO,CAACW,SAAS,GAAG;EAClBV,IAAI,EAAEH,SAAS,CAACc,MAAM,CAACC;AACzB,CAAC;AAED,eAAeb,OAAO","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
import Button from '@blaze-react/button';
|
|
3
4
|
const Image = ({
|
|
4
5
|
url,
|
|
5
6
|
name,
|
|
6
|
-
children
|
|
7
|
+
children,
|
|
8
|
+
handleChangeFile
|
|
7
9
|
}) => /*#__PURE__*/React.createElement("div", {
|
|
8
10
|
className: "preview"
|
|
9
11
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -17,11 +19,17 @@ const Image = ({
|
|
|
17
19
|
href: url,
|
|
18
20
|
rel: "noopener noreferrer",
|
|
19
21
|
target: "_blank"
|
|
20
|
-
}, "Original"))
|
|
22
|
+
}, "Original")), /*#__PURE__*/React.createElement(Button, {
|
|
23
|
+
onClick: handleChangeFile
|
|
24
|
+
}, "Change file"))), children);
|
|
21
25
|
Image.propTypes = {
|
|
22
26
|
url: PropTypes.string.isRequired,
|
|
23
27
|
name: PropTypes.string.isRequired,
|
|
24
|
-
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired
|
|
28
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,
|
|
29
|
+
handleChangeFile: PropTypes.func
|
|
30
|
+
};
|
|
31
|
+
Image.defaultProps = {
|
|
32
|
+
handleChangeFile: () => {}
|
|
25
33
|
};
|
|
26
34
|
export { Image };
|
|
27
35
|
//# sourceMappingURL=Image.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","names":["React","PropTypes","Image","url","name","children","createElement","className","src","alt","href","rel","target","propTypes","string","isRequired","oneOfType","arrayOf","node"],"sources":["../../../../src/components/FilePreview/Image/Image.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Image = ({ url, name, children }) => (\n <div className=\"preview\">\n <div className=\"preview__file preview__file--image\">\n <img src={url} alt={name} />\n <div className=\"preview__details preview__details--file\">\n <p>\n <strong>File details</strong>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Original\n </a>\n </p>\n </div>\n </div>\n {children}\n </div>\n);\n\nImage.propTypes = {\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport { Image };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"Image.js","names":["React","PropTypes","Button","Image","url","name","children","handleChangeFile","createElement","className","src","alt","href","rel","target","onClick","propTypes","string","isRequired","oneOfType","arrayOf","node","func","defaultProps"],"sources":["../../../../src/components/FilePreview/Image/Image.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@blaze-react/button';\n\nconst Image = ({ url, name, children, handleChangeFile }) => (\n <div className=\"preview\">\n <div className=\"preview__file preview__file--image\">\n <img src={url} alt={name} />\n <div className=\"preview__details preview__details--file\">\n <p>\n <strong>File details</strong>\n <a href={url} rel=\"noopener noreferrer\" target=\"_blank\">\n Original\n </a>\n </p>\n <Button onClick={handleChangeFile}>Change file</Button>\n </div>\n </div>\n {children}\n </div>\n);\n\nImage.propTypes = {\n url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n handleChangeFile: PropTypes.func\n};\n\nImage.defaultProps = {\n handleChangeFile: () => {}\n};\n\nexport { Image };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,MAAM,MAAM,qBAAqB;AAExC,MAAMC,KAAK,GAAGA,CAAC;EAAEC,GAAG;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,kBACtDP,KAAA,CAAAQ,aAAA;EAAKC,SAAS,EAAC;AAAS,gBACtBT,KAAA,CAAAQ,aAAA;EAAKC,SAAS,EAAC;AAAoC,gBACjDT,KAAA,CAAAQ,aAAA;EAAKE,GAAG,EAAEN,GAAI;EAACO,GAAG,EAAEN;AAAK,CAAE,CAAC,eAC5BL,KAAA,CAAAQ,aAAA;EAAKC,SAAS,EAAC;AAAyC,gBACtDT,KAAA,CAAAQ,aAAA,yBACER,KAAA,CAAAQ,aAAA,iBAAQ,cAAoB,CAAC,eAC7BR,KAAA,CAAAQ,aAAA;EAAGI,IAAI,EAAER,GAAI;EAACS,GAAG,EAAC,qBAAqB;EAACC,MAAM,EAAC;AAAQ,GAAC,UAErD,CACF,CAAC,eACJd,KAAA,CAAAQ,aAAA,CAACN,MAAM;EAACa,OAAO,EAAER;AAAiB,GAAC,aAAmB,CACnD,CACF,CAAC,EACLD,QACE,CACN;AAEDH,KAAK,CAACa,SAAS,GAAG;EAChBZ,GAAG,EAAEH,SAAS,CAACgB,MAAM,CAACC,UAAU;EAChCb,IAAI,EAAEJ,SAAS,CAACgB,MAAM,CAACC,UAAU;EACjCZ,QAAQ,EAAEL,SAAS,CAACkB,SAAS,CAAC,CAAClB,SAAS,CAACmB,OAAO,CAACnB,SAAS,CAACoB,IAAI,CAAC,EAAEpB,SAAS,CAACoB,IAAI,CAAC,CAAC,CAACH,UAAU;EAC7FX,gBAAgB,EAAEN,SAAS,CAACqB;AAC9B,CAAC;AAEDnB,KAAK,CAACoB,YAAY,GAAG;EACnBhB,gBAAgB,EAAEA,CAAA,KAAM,CAAC;AAC3B,CAAC;AAED,SAASJ,KAAK","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageSchema.js","names":["imageSchema","settings","formSchema","properties","name","type","showInForm","label","formFieldType","formPriority","storeKey","description","options","altText","caption","credits","hrefUrl","format","required"],"sources":["../../../../src/components/FilePreview/Image/imageSchema.js"],"sourcesContent":["const imageSchema = {\n settings: {},\n formSchema: {\n properties: {\n name: {\n type: 'string',\n showInForm: true,\n label: 'File name',\n formFieldType: 'text',\n formPriority: 1.0\n },\n storeKey: {\n type: 'string',\n showInForm: true,\n label: 'Store type',\n formFieldType: 'select',\n formPriority: 2.0,\n description: 'Please select store type',\n options: []\n },\n altText: {\n type: 'string',\n showInForm: true,\n label: 'Alt text',\n formFieldType: 'text',\n formPriority: 3.0\n },\n caption: {\n type: 'string',\n showInForm: true,\n formFieldType: 'text',\n formPriority: 4.0\n },\n credits: {\n type: 'string',\n showInForm: true,\n formFieldType: 'text',\n formPriority: 5.0\n },\n hrefUrl: {\n type: 'string',\n format: 'uri-template',\n label: '
|
|
1
|
+
{"version":3,"file":"imageSchema.js","names":["imageSchema","settings","formSchema","properties","name","type","showInForm","label","formFieldType","formPriority","storeKey","description","options","altText","caption","credits","hrefUrl","format","required"],"sources":["../../../../src/components/FilePreview/Image/imageSchema.js"],"sourcesContent":["const imageSchema = {\n settings: {},\n formSchema: {\n properties: {\n name: {\n type: 'string',\n showInForm: true,\n label: 'File name',\n formFieldType: 'text',\n formPriority: 1.0\n },\n storeKey: {\n type: 'string',\n showInForm: true,\n label: 'Store type',\n formFieldType: 'select',\n formPriority: 2.0,\n description: 'Please select store type',\n options: []\n },\n altText: {\n type: 'string',\n showInForm: true,\n label: 'Alt text',\n formFieldType: 'text',\n formPriority: 3.0\n },\n caption: {\n type: 'string',\n showInForm: true,\n formFieldType: 'text',\n formPriority: 4.0\n },\n credits: {\n type: 'string',\n showInForm: true,\n formFieldType: 'text',\n formPriority: 5.0\n },\n hrefUrl: {\n type: 'string',\n format: 'uri-template',\n label: 'Url',\n showInForm: true,\n formFieldType: 'text',\n description: 'Url format is not valid'\n }\n },\n required: ['name']\n }\n};\n\nexport { imageSchema };\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG;EAClBC,QAAQ,EAAE,CAAC,CAAC;EACZC,UAAU,EAAE;IACVC,UAAU,EAAE;MACVC,IAAI,EAAE;QACJC,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,IAAI;QAChBC,KAAK,EAAE,WAAW;QAClBC,aAAa,EAAE,MAAM;QACrBC,YAAY,EAAE;MAChB,CAAC;MACDC,QAAQ,EAAE;QACRL,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,IAAI;QAChBC,KAAK,EAAE,YAAY;QACnBC,aAAa,EAAE,QAAQ;QACvBC,YAAY,EAAE,GAAG;QACjBE,WAAW,EAAE,0BAA0B;QACvCC,OAAO,EAAE;MACX,CAAC;MACDC,OAAO,EAAE;QACPR,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,IAAI;QAChBC,KAAK,EAAE,UAAU;QACjBC,aAAa,EAAE,MAAM;QACrBC,YAAY,EAAE;MAChB,CAAC;MACDK,OAAO,EAAE;QACPT,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,IAAI;QAChBE,aAAa,EAAE,MAAM;QACrBC,YAAY,EAAE;MAChB,CAAC;MACDM,OAAO,EAAE;QACPV,IAAI,EAAE,QAAQ;QACdC,UAAU,EAAE,IAAI;QAChBE,aAAa,EAAE,MAAM;QACrBC,YAAY,EAAE;MAChB,CAAC;MACDO,OAAO,EAAE;QACPX,IAAI,EAAE,QAAQ;QACdY,MAAM,EAAE,cAAc;QACtBV,KAAK,EAAE,KAAK;QACZD,UAAU,EAAE,IAAI;QAChBE,aAAa,EAAE,MAAM;QACrBG,WAAW,EAAE;MACf;IACF,CAAC;IACDO,QAAQ,EAAE,CAAC,MAAM;EACnB;AACF,CAAC;AAED,SAASlB,WAAW","ignoreList":[]}
|
|
@@ -11,7 +11,8 @@ const FilePreview = ({
|
|
|
11
11
|
handleFormChange,
|
|
12
12
|
displayForm,
|
|
13
13
|
previewType,
|
|
14
|
-
children
|
|
14
|
+
children,
|
|
15
|
+
handleChangeFile
|
|
15
16
|
}) => {
|
|
16
17
|
const {
|
|
17
18
|
name,
|
|
@@ -48,7 +49,8 @@ const FilePreview = ({
|
|
|
48
49
|
url: url,
|
|
49
50
|
name: name
|
|
50
51
|
}, data, {
|
|
51
|
-
file: file
|
|
52
|
+
file: file,
|
|
53
|
+
handleChangeFile: handleChangeFile
|
|
52
54
|
}), shouldRenderForm && /*#__PURE__*/React.createElement("div", {
|
|
53
55
|
className: "preview__details"
|
|
54
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -68,6 +70,7 @@ FilePreview.propTypes = {
|
|
|
68
70
|
file: PropTypes.object.isRequired,
|
|
69
71
|
fileName: PropTypes.string,
|
|
70
72
|
handleFormChange: PropTypes.func,
|
|
73
|
+
handleChangeFile: PropTypes.func,
|
|
71
74
|
displayForm: PropTypes.bool,
|
|
72
75
|
handlers: PropTypes.object,
|
|
73
76
|
previewType: PropTypes.oneOf(Object.keys(FilePreview.availablePreviewTypes)),
|
|
@@ -79,6 +82,7 @@ FilePreview.defaultProps = {
|
|
|
79
82
|
handlers: {},
|
|
80
83
|
previewType: FilePreview.availablePreviewTypes.card,
|
|
81
84
|
handleFormChange: () => {},
|
|
85
|
+
handleChangeFile: () => {},
|
|
82
86
|
children: []
|
|
83
87
|
};
|
|
84
88
|
export default FilePreview;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","FormBuilder","PropTypes","getPreview","FilePreview","file","handleFormChange","displayForm","previewType","children","name","url","mimetype","data","store","Preview","schema","shouldRenderForm","defaultStore","storeOptions","formSchema","properties","storeKey","options","key","selected","formBuilderData","values","_objectSpread","createElement","Fragment","_extends","className","filename","formClassName","onChange","availablePreviewTypes","card","raw","propTypes","object","isRequired","fileName","string","func","bool","handlers","oneOf","Object","keys","oneOfType","array","defaultProps"],"sources":["../../../src/components/FilePreview/index.js"],"sourcesContent":["import React from 'react';\nimport { FormBuilder } from '@blaze-cms/react-form-builder';\nimport PropTypes from 'prop-types';\nimport { getPreview } from './get-preview';\n\nconst FilePreview = ({
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","FormBuilder","PropTypes","getPreview","FilePreview","file","handleFormChange","displayForm","previewType","children","handleChangeFile","name","url","mimetype","data","store","Preview","schema","shouldRenderForm","defaultStore","storeOptions","formSchema","properties","storeKey","options","key","selected","formBuilderData","values","_objectSpread","createElement","Fragment","_extends","className","filename","formClassName","onChange","availablePreviewTypes","card","raw","propTypes","object","isRequired","fileName","string","func","bool","handlers","oneOf","Object","keys","oneOfType","array","defaultProps"],"sources":["../../../src/components/FilePreview/index.js"],"sourcesContent":["import React from 'react';\nimport { FormBuilder } from '@blaze-cms/react-form-builder';\nimport PropTypes from 'prop-types';\nimport { getPreview } from './get-preview';\n\nconst FilePreview = ({\n file,\n handleFormChange,\n displayForm,\n previewType,\n children,\n handleChangeFile\n}) => {\n const { name, url, mimetype, data, store } = file;\n const [Preview, schema] = getPreview({ mimetype, previewType });\n const shouldRenderForm = schema && displayForm;\n\n if (shouldRenderForm && store) {\n const { defaultStore = {}, storeOptions = [] } = store;\n if (schema.formSchema.properties.storeKey) {\n schema.formSchema.properties.storeKey.options = storeOptions;\n if (defaultStore) {\n const { key } = defaultStore;\n schema.formSchema.properties.storeKey.selected = key;\n }\n }\n }\n\n const formBuilderData = { values: { ...file, ...data } };\n\n return (\n <>\n <Preview\n mimetype={mimetype}\n url={url}\n name={name}\n {...data}\n file={file}\n handleChangeFile={handleChangeFile}>\n {shouldRenderForm && (\n <div className=\"preview__details\">\n <div className=\"preview__filename\">{file.filename}</div>\n <FormBuilder\n formClassName=\"preview__form\"\n onChange={handleFormChange}\n data={formBuilderData}\n schema={schema.formSchema}\n />\n </div>\n )}\n </Preview>\n {children}\n </>\n );\n};\n\nFilePreview.availablePreviewTypes = {\n card: 'card',\n raw: 'raw'\n};\n\nFilePreview.propTypes = {\n file: PropTypes.object.isRequired,\n fileName: PropTypes.string,\n handleFormChange: PropTypes.func,\n handleChangeFile: PropTypes.func,\n displayForm: PropTypes.bool,\n handlers: PropTypes.object,\n previewType: PropTypes.oneOf(Object.keys(FilePreview.availablePreviewTypes)),\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string])\n};\n\nFilePreview.defaultProps = {\n displayForm: false,\n fileName: '',\n handlers: {},\n previewType: FilePreview.availablePreviewTypes.card,\n handleFormChange: () => {},\n handleChangeFile: () => {},\n children: []\n};\n\nexport default FilePreview;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,9 +4,9 @@ import FilePreviewList from './FilePreviewList';
|
|
|
4
4
|
const FileList = ({
|
|
5
5
|
selectedFiles,
|
|
6
6
|
children
|
|
7
|
-
}) => /*#__PURE__*/React.createElement(
|
|
7
|
+
}) => /*#__PURE__*/React.createElement(FilePreviewList, {
|
|
8
8
|
selectedFiles: selectedFiles
|
|
9
|
-
}, children)
|
|
9
|
+
}, children);
|
|
10
10
|
FileList.propTypes = {
|
|
11
11
|
selectedFiles: PropTypes.array.isRequired,
|
|
12
12
|
children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileList.js","names":["React","PropTypes","FilePreviewList","FileList","selectedFiles","children","createElement","
|
|
1
|
+
{"version":3,"file":"FileList.js","names":["React","PropTypes","FilePreviewList","FileList","selectedFiles","children","createElement","propTypes","array","isRequired","oneOfType","object","string","defaultProps"],"sources":["../../../src/components/FilePreviewReadOnly/FileList.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport FilePreviewList from './FilePreviewList';\n\nconst FileList = ({ selectedFiles, children }) => (\n <FilePreviewList selectedFiles={selectedFiles}>{children}</FilePreviewList>\n);\n\nFileList.propTypes = {\n selectedFiles: PropTypes.array.isRequired,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string])\n};\n\nFileList.defaultProps = {\n children: []\n};\n\nexport default FileList;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,eAAe,MAAM,mBAAmB;AAE/C,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,aAAa;EAAEC;AAAS,CAAC,kBAC3CL,KAAA,CAAAM,aAAA,CAACJ,eAAe;EAACE,aAAa,EAAEA;AAAc,GAAEC,QAA0B,CAC3E;AAEDF,QAAQ,CAACI,SAAS,GAAG;EACnBH,aAAa,EAAEH,SAAS,CAACO,KAAK,CAACC,UAAU;EACzCJ,QAAQ,EAAEJ,SAAS,CAACS,SAAS,CAAC,CAACT,SAAS,CAACO,KAAK,EAAEP,SAAS,CAACU,MAAM,EAAEV,SAAS,CAACW,MAAM,CAAC;AACrF,CAAC;AAEDT,QAAQ,CAACU,YAAY,GAAG;EACtBR,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeF,QAAQ","ignoreList":[]}
|
|
@@ -17,10 +17,11 @@ const FilePreviewReadOnly = ({
|
|
|
17
17
|
const [selectedFiles, setSelectedFiles] = useState([]);
|
|
18
18
|
const client = useApolloClient();
|
|
19
19
|
const getFiles = async (offset, ids) => {
|
|
20
|
+
if (!ids.length) return [];
|
|
20
21
|
const {
|
|
21
22
|
data: {
|
|
22
|
-
files
|
|
23
|
-
}
|
|
23
|
+
files = []
|
|
24
|
+
} = {}
|
|
24
25
|
} = await client.query({
|
|
25
26
|
query: getQuery('GET_FILES'),
|
|
26
27
|
variables: {
|
|
@@ -31,27 +32,28 @@ const FilePreviewReadOnly = ({
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
},
|
|
34
|
-
skip: !initialValue.length,
|
|
35
35
|
fetchPolicy: 'network-only'
|
|
36
36
|
});
|
|
37
|
-
return
|
|
37
|
+
return files;
|
|
38
38
|
};
|
|
39
|
+
const orderFiles = (files, ids) => ids.map(currentId => files.find(({
|
|
40
|
+
id: fileId
|
|
41
|
+
}) => fileId === currentId)).filter(Boolean);
|
|
39
42
|
useEffect(() => {
|
|
40
43
|
(async () => {
|
|
41
44
|
const files = await getFiles(0, initialValue);
|
|
42
45
|
const orderedFiles = orderFiles(files, initialValue);
|
|
43
46
|
setSelectedFiles(orderedFiles);
|
|
44
47
|
})();
|
|
45
|
-
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
id: fileId
|
|
49
|
-
}) => fileId === currentId)).filter(Boolean);
|
|
50
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
49
|
+
}, []);
|
|
50
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
51
51
|
className: "form-field form-field--button"
|
|
52
|
-
}, /*#__PURE__*/React.createElement("label",
|
|
52
|
+
}, /*#__PURE__*/React.createElement("label", {
|
|
53
|
+
htmlFor: id
|
|
54
|
+
}, label), selectedFiles.length > 0 && /*#__PURE__*/React.createElement(FileList, {
|
|
53
55
|
selectedFiles: selectedFiles
|
|
54
|
-
}))
|
|
56
|
+
}));
|
|
55
57
|
};
|
|
56
58
|
FilePreviewReadOnly.propTypes = {
|
|
57
59
|
label: PropTypes.string.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilePreviewReadOnly.js","names":["React","useState","useEffect","PropTypes","useApolloClient","getQuery","FileList","formatInitialValue","FilePreviewReadOnly","label","id","type","value","initialValue","selectedFiles","setSelectedFiles","client","getFiles","offset","ids","
|
|
1
|
+
{"version":3,"file":"FilePreviewReadOnly.js","names":["React","useState","useEffect","PropTypes","useApolloClient","getQuery","FileList","formatInitialValue","FilePreviewReadOnly","label","id","type","value","initialValue","selectedFiles","setSelectedFiles","client","getFiles","offset","ids","length","data","files","query","variables","where","_in","fetchPolicy","orderFiles","map","currentId","find","fileId","filter","Boolean","orderedFiles","createElement","className","htmlFor","propTypes","string","isRequired","oneOfType","array","defaultProps"],"sources":["../../../src/components/FilePreviewReadOnly/FilePreviewReadOnly.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport FileList from './FileList';\nimport { formatInitialValue } from './mappers';\n\nconst FilePreviewReadOnly = ({ label, id, type, value }) => {\n const initialValue = formatInitialValue({ value, type });\n const [selectedFiles, setSelectedFiles] = useState([]);\n const client = useApolloClient();\n\n const getFiles = async (offset, ids) => {\n if (!ids.length) return [];\n const { data: { files = [] } = {} } = await client.query({\n query: getQuery('GET_FILES'),\n variables: {\n offset,\n where: {\n id: { _in: ids }\n }\n },\n fetchPolicy: 'network-only'\n });\n return files;\n };\n\n const orderFiles = (files, ids) =>\n ids.map(currentId => files.find(({ id: fileId }) => fileId === currentId)).filter(Boolean);\n\n useEffect(() => {\n (async () => {\n const files = await getFiles(0, initialValue);\n const orderedFiles = orderFiles(files, initialValue);\n setSelectedFiles(orderedFiles);\n })();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <div className=\"form-field form-field--button\">\n <label htmlFor={id}>{label}</label>\n {selectedFiles.length > 0 && <FileList selectedFiles={selectedFiles} />}\n </div>\n );\n};\n\nFilePreviewReadOnly.propTypes = {\n label: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\n};\n\nFilePreviewReadOnly.defaultProps = {\n value: ''\n};\n\nexport default FilePreviewReadOnly;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,QAAQ,QAAQ,2BAA2B;AACpD,OAAOC,QAAQ,MAAM,YAAY;AACjC,SAASC,kBAAkB,QAAQ,WAAW;AAE9C,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,KAAK;EAAEC,EAAE;EAAEC,IAAI;EAAEC;AAAM,CAAC,KAAK;EAC1D,MAAMC,YAAY,GAAGN,kBAAkB,CAAC;IAAEK,KAAK;IAAED;EAAK,CAAC,CAAC;EACxD,MAAM,CAACG,aAAa,EAAEC,gBAAgB,CAAC,GAAGd,QAAQ,CAAC,EAAE,CAAC;EACtD,MAAMe,MAAM,GAAGZ,eAAe,CAAC,CAAC;EAEhC,MAAMa,QAAQ,GAAG,MAAAA,CAAOC,MAAM,EAAEC,GAAG,KAAK;IACtC,IAAI,CAACA,GAAG,CAACC,MAAM,EAAE,OAAO,EAAE;IAC1B,MAAM;MAAEC,IAAI,EAAE;QAAEC,KAAK,GAAG;MAAG,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,MAAMN,MAAM,CAACO,KAAK,CAAC;MACvDA,KAAK,EAAElB,QAAQ,CAAC,WAAW,CAAC;MAC5BmB,SAAS,EAAE;QACTN,MAAM;QACNO,KAAK,EAAE;UACLf,EAAE,EAAE;YAAEgB,GAAG,EAAEP;UAAI;QACjB;MACF,CAAC;MACDQ,WAAW,EAAE;IACf,CAAC,CAAC;IACF,OAAOL,KAAK;EACd,CAAC;EAED,MAAMM,UAAU,GAAGA,CAACN,KAAK,EAAEH,GAAG,KAC5BA,GAAG,CAACU,GAAG,CAACC,SAAS,IAAIR,KAAK,CAACS,IAAI,CAAC,CAAC;IAAErB,EAAE,EAAEsB;EAAO,CAAC,KAAKA,MAAM,KAAKF,SAAS,CAAC,CAAC,CAACG,MAAM,CAACC,OAAO,CAAC;EAE5FhC,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,MAAMoB,KAAK,GAAG,MAAML,QAAQ,CAAC,CAAC,EAAEJ,YAAY,CAAC;MAC7C,MAAMsB,YAAY,GAAGP,UAAU,CAACN,KAAK,EAAET,YAAY,CAAC;MACpDE,gBAAgB,CAACoB,YAAY,CAAC;IAChC,CAAC,EAAE,CAAC;IACJ;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEnC,KAAA,CAAAoC,aAAA;IAAKC,SAAS,EAAC;EAA+B,gBAC5CrC,KAAA,CAAAoC,aAAA;IAAOE,OAAO,EAAE5B;EAAG,GAAED,KAAa,CAAC,EAClCK,aAAa,CAACM,MAAM,GAAG,CAAC,iBAAIpB,KAAA,CAAAoC,aAAA,CAAC9B,QAAQ;IAACQ,aAAa,EAAEA;EAAc,CAAE,CACnE,CAAC;AAEV,CAAC;AAEDN,mBAAmB,CAAC+B,SAAS,GAAG;EAC9B9B,KAAK,EAAEN,SAAS,CAACqC,MAAM,CAACC,UAAU;EAClC/B,EAAE,EAAEP,SAAS,CAACqC,MAAM,CAACC,UAAU;EAC/B9B,IAAI,EAAER,SAAS,CAACqC,MAAM,CAACC,UAAU;EACjC7B,KAAK,EAAET,SAAS,CAACuC,SAAS,CAAC,CAACvC,SAAS,CAACqC,MAAM,EAAErC,SAAS,CAACwC,KAAK,CAAC;AAChE,CAAC;AAEDnC,mBAAmB,CAACoC,YAAY,GAAG;EACjChC,KAAK,EAAE;AACT,CAAC;AAED,eAAeJ,mBAAmB","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import { useApolloClient } from '@apollo/client';
|
|
|
8
8
|
import { getQuery, getMutation, ModalAdapter as Modal } from '@blaze-cms/admin-ui-utils';
|
|
9
9
|
import { parseFormValues } from '@blaze-cms/react-form-builder';
|
|
10
10
|
import { useToasts } from '@blaze-react/toaster';
|
|
11
|
+
import Tooltip from '@blaze-react/tooltip';
|
|
11
12
|
import { MORE } from '../../constants';
|
|
12
13
|
import ListingContainer from '../ListingContainer';
|
|
13
14
|
import { MediaContextProvider } from '../../utils/media-context';
|
|
@@ -25,6 +26,7 @@ const FileUploadAdapter = ({
|
|
|
25
26
|
shouldRenderInPreview,
|
|
26
27
|
canDragAndDrop,
|
|
27
28
|
simpleLayout,
|
|
29
|
+
tooltip,
|
|
28
30
|
previewAllFiles,
|
|
29
31
|
fileType
|
|
30
32
|
}) => {
|
|
@@ -282,7 +284,9 @@ const FileUploadAdapter = ({
|
|
|
282
284
|
}, "+ ", filesPendingString) : null;
|
|
283
285
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
284
286
|
className: "form-field form-field--button"
|
|
285
|
-
}, /*#__PURE__*/React.createElement("label", null, label
|
|
287
|
+
}, /*#__PURE__*/React.createElement("label", null, label, " ", /*#__PURE__*/React.createElement(Tooltip, {
|
|
288
|
+
tooltipContent: tooltip
|
|
289
|
+
})), selectedFiles && /*#__PURE__*/React.createElement(MediaContextProvider, {
|
|
286
290
|
value: {
|
|
287
291
|
handleEditModal,
|
|
288
292
|
onUnselectFile: handleSelectedFiles
|
|
@@ -356,6 +360,7 @@ FileUploadAdapter.propTypes = {
|
|
|
356
360
|
canDragAndDrop: PropTypes.bool,
|
|
357
361
|
simpleLayout: PropTypes.bool,
|
|
358
362
|
previewAllFiles: PropTypes.bool,
|
|
363
|
+
tooltip: PropTypes.string,
|
|
359
364
|
fileType: PropTypes.string
|
|
360
365
|
};
|
|
361
366
|
FileUploadAdapter.defaultProps = {
|
|
@@ -365,6 +370,7 @@ FileUploadAdapter.defaultProps = {
|
|
|
365
370
|
canDragAndDrop: false,
|
|
366
371
|
simpleLayout: false,
|
|
367
372
|
previewAllFiles: false,
|
|
373
|
+
tooltip: '',
|
|
368
374
|
fileType: 'file'
|
|
369
375
|
};
|
|
370
376
|
export default FileUploadAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadAdapter.js","names":["React","useState","useContext","useEffect","FileUpload","PropTypes","useApolloClient","getQuery","getMutation","ModalAdapter","Modal","parseFormValues","useToasts","MORE","ListingContainer","MediaContextProvider","FileList","useLimit","getFormat","formatInitialValue","transformToArray","isUnselecting","getButtonText","getNumberFilesPendingToFetch","FilePreview","FileUploadAdapter","onChange","label","id","type","value","maxItems","shouldRenderInPreview","canDragAndDrop","simpleLayout","previewAllFiles","fileType","InjectPreview","FormContext","currentLimit","displayModal","setDisplayModal","displayFileUploadModal","setDisplayFileUploadModal","initialValue","currentValue","setCurrentValue","currentOffset","setCurrentOffset","selectedFiles","setSelectedFiles","editFile","setEditFile","client","addToast","getFiles","offset","ids","fetchAll","data","files","newFiles","query","variables","limit","where","_in","skip","length","fetchPolicy","initialFiles","filter","_","i","orderedFiles","orderFiles","fetchMore","shouldFetchAll","newOffset","updatedOffset","offsetToUse","handleSelectedFiles","checkIsUnselecting","isUnselectingFile","valueArray","selectedFilesIds","valueId","includes","parsedValue","filesIds","event","target","name","fileData","handleReorderFiles","map","fileId","closeModalAndSetValue","isSaving","values","toastMessage","appearance","autoDismiss","fileUploadButtonText","filesPending","onOpenLibrary","handleEditModal","file","selectedEditFile","find","_id","handleEditFileForm","editedFile","valuesChecked","altText","caption","credits","hrefUrl","_objectSpread","currentId","Boolean","modalActions","textButton","callback","modifiers","editModalActions","editedFileId","updatedSelectedFiles","selectedFile","mutate","mutation","input","update","cache","updateFile","fileUpdated","writeQuery","result","e","console","error","filesPendingString","fileListSpan","createElement","className","onClick","Fragment","onUnselectFile","selector","previewerId","allFiles","actionText","handleLibraryClick","enableDragAndDrop","actions","title","onClose","fileName","handleFormChange","displayForm","previewType","filesSelected","propTypes","func","isRequired","string","oneOfType","array","number","bool","defaultProps"],"sources":["../../../src/components/FileUploadAdapter/FileUploadAdapter.js"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\nimport FileUpload from '@blaze-react/file-upload';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, getMutation, ModalAdapter as Modal } from '@blaze-cms/admin-ui-utils';\nimport { parseFormValues } from '@blaze-cms/react-form-builder';\nimport { useToasts } from '@blaze-react/toaster';\nimport { MORE } from '../../constants';\nimport ListingContainer from '../ListingContainer';\nimport { MediaContextProvider } from '../../utils/media-context';\nimport FileList from './FileList';\nimport useLimit from './useLimit';\nimport {\n getFormat,\n formatInitialValue,\n transformToArray,\n isUnselecting,\n getButtonText,\n getNumberFilesPendingToFetch\n} from './mappers';\nimport FilePreview from '../FilePreview';\n\nconst FileUploadAdapter = ({\n onChange,\n label,\n id,\n type,\n value,\n maxItems,\n shouldRenderInPreview,\n canDragAndDrop,\n simpleLayout,\n previewAllFiles,\n fileType\n}) => {\n const { InjectPreview } = useContext(FileUploadAdapter.FormContext);\n const [currentLimit] = useLimit(maxItems);\n const [displayModal, setDisplayModal] = useState(false);\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const initialValue = formatInitialValue({ value, type });\n const [currentValue, setCurrentValue] = useState(initialValue);\n const [currentOffset, setCurrentOffset] = useState(0);\n const [selectedFiles, setSelectedFiles] = useState([]);\n const [editFile, setEditFile] = useState(null);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n const getFiles = async (offset, ids, fetchAll = previewAllFiles) => {\n const {\n data: { files: newFiles }\n } = await client.query({\n query: getQuery('GET_FILES'),\n variables: {\n limit: fetchAll ? 0 : 4,\n offset,\n where: {\n id: {\n _in: ids\n }\n }\n },\n skip: !currentValue.length,\n fetchPolicy: 'network-only'\n });\n return newFiles;\n };\n\n useEffect(\n () => {\n (async () => {\n const initialFiles =\n !selectedFiles.length && !previewAllFiles\n ? currentValue.filter((_, i) => i <= 3)\n : currentValue;\n\n const files = await getFiles(0, initialFiles);\n const orderedFiles = orderFiles(files, currentValue);\n setCurrentOffset(0);\n setSelectedFiles(orderedFiles);\n })();\n },\n [currentValue] //eslint-disable-line\n );\n\n const fetchMore = async shouldFetchAll => {\n if (selectedFiles.length === currentValue.length) return;\n const newOffset = currentOffset + 4;\n const updatedOffset = newOffset > currentValue.length ? currentValue.length : newOffset;\n const offsetToUse = shouldFetchAll ? 0 : updatedOffset;\n const files = await getFiles(offsetToUse, currentValue, shouldFetchAll);\n const newFiles = [...selectedFiles, ...files];\n const orderedFiles = orderFiles(newFiles, currentValue);\n setSelectedFiles(orderedFiles);\n setCurrentOffset(newOffset);\n };\n\n const handleSelectedFiles = (files, checkIsUnselecting = true) => {\n const isUnselectingFile = isUnselecting(value, checkIsUnselecting, files);\n if (isUnselectingFile) {\n const valueArray = transformToArray(value);\n const selectedFilesIds = valueArray.filter(valueId => !files.includes(valueId));\n const parsedValue = getFormat(type, { filesIds: selectedFilesIds });\n setCurrentValue(selectedFilesIds);\n return onChange({\n event: {\n target: {\n value: parsedValue,\n name: id,\n type,\n fileData: selectedFilesIds.length ? selectedFilesIds : null\n }\n },\n value: parsedValue\n });\n }\n\n setCurrentValue(files);\n };\n\n const handleReorderFiles = files => {\n const filesIds = files.map(({ id: fileId }) => fileId);\n const parsedValue = getFormat(type, { filesIds });\n setSelectedFiles(files);\n\n return onChange({\n event: {\n target: {\n value: parsedValue,\n name: id,\n type,\n fileData: filesIds\n }\n },\n value: parsedValue\n });\n };\n\n const closeModalAndSetValue = (isSaving, values, toastMessage) => {\n if (toastMessage) {\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n }\n\n if (isSaving) {\n const parsedValue = getFormat(type, { filesIds: simpleLayout ? values : currentValue });\n setDisplayModal(false);\n return onChange({\n event: { target: { value: parsedValue, name: id, type, currentValue } },\n value: parsedValue\n });\n }\n\n setCurrentValue(initialValue);\n setDisplayModal(false);\n };\n\n const fileUploadButtonText = getButtonText({ maxItems, value: initialValue, fileType });\n\n const filesPending = previewAllFiles\n ? 0\n : getNumberFilesPendingToFetch(currentOffset, currentValue);\n const onOpenLibrary = () => setDisplayModal(true);\n const handleEditModal = file => {\n const selectedEditFile = selectedFiles.find(({ id: _id }) => _id === file.id);\n setEditFile(selectedEditFile);\n };\n\n const handleEditFileForm = editedFile => {\n const values = parseFormValues(editedFile.valuesChecked);\n\n const { altText, caption, credits, hrefUrl, name } = values;\n setEditFile({\n ...editFile,\n name,\n data: {\n altText,\n caption,\n credits,\n hrefUrl\n }\n });\n };\n\n const orderFiles = (files, ids) =>\n ids.map(currentId => files.find(({ id: fileId }) => fileId === currentId)).filter(Boolean);\n\n const modalActions = [\n {\n textButton: 'Cancel',\n callback: () => {\n closeModalAndSetValue();\n },\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: () => {\n closeModalAndSetValue(true);\n },\n modifiers: []\n }\n ];\n\n const editModalActions = [\n {\n textButton: 'Cancel',\n callback: () => {\n setEditFile(null);\n },\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: async () => {\n const { name, id: editedFileId, data } = editFile;\n const updatedSelectedFiles = selectedFiles.map(selectedFile => {\n if (selectedFile.id === editedFileId) {\n return { ...selectedFile, name, data };\n }\n return selectedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n\n try {\n await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: {\n input: {\n name,\n data,\n id: editedFileId\n }\n },\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 addToast(`File: ${editFile.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n closeModalAndSetValue(true);\n setEditFile(null);\n } catch (e) {\n addToast(`File: ${editFile.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n console.error(e); //eslint-disable-line\n }\n },\n modifiers: []\n }\n ];\n const filesPendingString = `${filesPending} ${MORE}`;\n const fileListSpan = filesPending ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <span className=\"FileUploadAdapter__preview-link button button--link\" onClick={fetchMore}>\n + {filesPendingString}\n </span>\n ) : null;\n\n return (\n <>\n <div className=\"form-field form-field--button\">\n <label>{label}</label>\n {selectedFiles && (\n <MediaContextProvider value={{ handleEditModal, onUnselectFile: handleSelectedFiles }}>\n {shouldRenderInPreview ? (\n <InjectPreview selector={FileUploadAdapter.previewerId}>\n <FileList\n selectedFiles={selectedFiles}\n allFiles={currentValue}\n handleReorderFiles={handleReorderFiles}\n canDragAndDrop={canDragAndDrop}\n fetchMore={fetchMore}>\n {fileListSpan}\n </FileList>\n </InjectPreview>\n ) : (\n <FileList\n selectedFiles={selectedFiles}\n handleReorderFiles={handleReorderFiles}\n fetchMore={fetchMore}\n />\n )}\n </MediaContextProvider>\n )}\n <FileUpload\n actionText={fileUploadButtonText}\n handleLibraryClick={() => {\n if (simpleLayout) {\n setDisplayFileUploadModal(true);\n } else {\n onOpenLibrary();\n }\n }}\n enableDragAndDrop={false}\n />\n </div>\n {editFile && (\n <Modal actions={editModalActions} title=\"Edit File\" onClose={() => setEditFile(null)}>\n <FilePreview\n file={editFile}\n fileName={editFile.fileName}\n handleFormChange={handleEditFileForm}\n displayForm\n previewType=\"card\"\n />\n </Modal>\n )}\n\n {displayFileUploadModal && simpleLayout && (\n <div className=\"file-upload-modal-wrapper\">\n <ListingContainer\n displayFileUploadModal={displayFileUploadModal}\n closeModalAndSetValue={closeModalAndSetValue}\n setDisplayFileUploadModal={setDisplayFileUploadModal}\n handleSelectedFiles={handleSelectedFiles}\n maxItems={currentLimit}\n simpleLayout={simpleLayout}\n filesSelected={currentValue.length > 1 ? currentValue : []}\n />\n </div>\n )}\n\n {displayModal && !simpleLayout && (\n <div className=\"file-upload-modal-wrapper\">\n <Modal\n actions={modalActions}\n className=\"file-upload-modal\"\n title=\"Media library\"\n onClose={() => closeModalAndSetValue()}>\n <ListingContainer\n closeModalAndSetValue={closeModalAndSetValue}\n displayFileUploadModal={displayFileUploadModal}\n setDisplayFileUploadModal={setDisplayFileUploadModal}\n handleSelectedFiles={handleSelectedFiles}\n maxItems={currentLimit}\n filesSelected={currentValue.length > 1 ? currentValue : []}\n />\n </Modal>\n </div>\n )}\n </>\n );\n};\n\nFileUploadAdapter.propTypes = {\n onChange: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n maxItems: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n shouldRenderInPreview: PropTypes.bool,\n canDragAndDrop: PropTypes.bool,\n simpleLayout: PropTypes.bool,\n previewAllFiles: PropTypes.bool,\n fileType: PropTypes.string\n};\n\nFileUploadAdapter.defaultProps = {\n value: '',\n maxItems: false,\n shouldRenderInPreview: false,\n canDragAndDrop: false,\n simpleLayout: false,\n previewAllFiles: false,\n fileType: 'file'\n};\n\nexport default FileUploadAdapter;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FileUploadAdapter.js","names":["React","useState","useContext","useEffect","FileUpload","PropTypes","useApolloClient","getQuery","getMutation","ModalAdapter","Modal","parseFormValues","useToasts","Tooltip","MORE","ListingContainer","MediaContextProvider","FileList","useLimit","getFormat","formatInitialValue","transformToArray","isUnselecting","getButtonText","getNumberFilesPendingToFetch","FilePreview","FileUploadAdapter","onChange","label","id","type","value","maxItems","shouldRenderInPreview","canDragAndDrop","simpleLayout","tooltip","previewAllFiles","fileType","InjectPreview","FormContext","currentLimit","displayModal","setDisplayModal","displayFileUploadModal","setDisplayFileUploadModal","initialValue","currentValue","setCurrentValue","currentOffset","setCurrentOffset","selectedFiles","setSelectedFiles","editFile","setEditFile","client","addToast","getFiles","offset","ids","fetchAll","data","files","newFiles","query","variables","limit","where","_in","skip","length","fetchPolicy","initialFiles","filter","_","i","orderedFiles","orderFiles","fetchMore","shouldFetchAll","newOffset","updatedOffset","offsetToUse","handleSelectedFiles","checkIsUnselecting","isUnselectingFile","valueArray","selectedFilesIds","valueId","includes","parsedValue","filesIds","event","target","name","fileData","handleReorderFiles","map","fileId","closeModalAndSetValue","isSaving","values","toastMessage","appearance","autoDismiss","fileUploadButtonText","filesPending","onOpenLibrary","handleEditModal","file","selectedEditFile","find","_id","handleEditFileForm","editedFile","valuesChecked","altText","caption","credits","hrefUrl","_objectSpread","currentId","Boolean","modalActions","textButton","callback","modifiers","editModalActions","editedFileId","updatedSelectedFiles","selectedFile","mutate","mutation","input","update","cache","updateFile","fileUpdated","writeQuery","result","e","console","error","filesPendingString","fileListSpan","createElement","className","onClick","Fragment","tooltipContent","onUnselectFile","selector","previewerId","allFiles","actionText","handleLibraryClick","enableDragAndDrop","actions","title","onClose","fileName","handleFormChange","displayForm","previewType","filesSelected","propTypes","func","isRequired","string","oneOfType","array","number","bool","defaultProps"],"sources":["../../../src/components/FileUploadAdapter/FileUploadAdapter.js"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\nimport FileUpload from '@blaze-react/file-upload';\nimport PropTypes from 'prop-types';\nimport { useApolloClient } from '@apollo/client';\nimport { getQuery, getMutation, ModalAdapter as Modal } from '@blaze-cms/admin-ui-utils';\nimport { parseFormValues } from '@blaze-cms/react-form-builder';\nimport { useToasts } from '@blaze-react/toaster';\nimport Tooltip from '@blaze-react/tooltip';\nimport { MORE } from '../../constants';\nimport ListingContainer from '../ListingContainer';\nimport { MediaContextProvider } from '../../utils/media-context';\nimport FileList from './FileList';\nimport useLimit from './useLimit';\nimport {\n getFormat,\n formatInitialValue,\n transformToArray,\n isUnselecting,\n getButtonText,\n getNumberFilesPendingToFetch\n} from './mappers';\nimport FilePreview from '../FilePreview';\n\nconst FileUploadAdapter = ({\n onChange,\n label,\n id,\n type,\n value,\n maxItems,\n shouldRenderInPreview,\n canDragAndDrop,\n simpleLayout,\n tooltip,\n previewAllFiles,\n fileType\n}) => {\n const { InjectPreview } = useContext(FileUploadAdapter.FormContext);\n const [currentLimit] = useLimit(maxItems);\n const [displayModal, setDisplayModal] = useState(false);\n const [displayFileUploadModal, setDisplayFileUploadModal] = useState(false);\n const initialValue = formatInitialValue({ value, type });\n const [currentValue, setCurrentValue] = useState(initialValue);\n const [currentOffset, setCurrentOffset] = useState(0);\n const [selectedFiles, setSelectedFiles] = useState([]);\n const [editFile, setEditFile] = useState(null);\n const client = useApolloClient();\n const { addToast } = useToasts();\n\n const getFiles = async (offset, ids, fetchAll = previewAllFiles) => {\n const {\n data: { files: newFiles }\n } = await client.query({\n query: getQuery('GET_FILES'),\n variables: {\n limit: fetchAll ? 0 : 4,\n offset,\n where: {\n id: {\n _in: ids\n }\n }\n },\n skip: !currentValue.length,\n fetchPolicy: 'network-only'\n });\n return newFiles;\n };\n\n useEffect(\n () => {\n (async () => {\n const initialFiles =\n !selectedFiles.length && !previewAllFiles\n ? currentValue.filter((_, i) => i <= 3)\n : currentValue;\n\n const files = await getFiles(0, initialFiles);\n const orderedFiles = orderFiles(files, currentValue);\n setCurrentOffset(0);\n setSelectedFiles(orderedFiles);\n })();\n },\n [currentValue] //eslint-disable-line\n );\n\n const fetchMore = async shouldFetchAll => {\n if (selectedFiles.length === currentValue.length) return;\n const newOffset = currentOffset + 4;\n const updatedOffset = newOffset > currentValue.length ? currentValue.length : newOffset;\n const offsetToUse = shouldFetchAll ? 0 : updatedOffset;\n const files = await getFiles(offsetToUse, currentValue, shouldFetchAll);\n const newFiles = [...selectedFiles, ...files];\n const orderedFiles = orderFiles(newFiles, currentValue);\n setSelectedFiles(orderedFiles);\n setCurrentOffset(newOffset);\n };\n\n const handleSelectedFiles = (files, checkIsUnselecting = true) => {\n const isUnselectingFile = isUnselecting(value, checkIsUnselecting, files);\n if (isUnselectingFile) {\n const valueArray = transformToArray(value);\n const selectedFilesIds = valueArray.filter(valueId => !files.includes(valueId));\n const parsedValue = getFormat(type, { filesIds: selectedFilesIds });\n setCurrentValue(selectedFilesIds);\n return onChange({\n event: {\n target: {\n value: parsedValue,\n name: id,\n type,\n fileData: selectedFilesIds.length ? selectedFilesIds : null\n }\n },\n value: parsedValue\n });\n }\n\n setCurrentValue(files);\n };\n\n const handleReorderFiles = files => {\n const filesIds = files.map(({ id: fileId }) => fileId);\n const parsedValue = getFormat(type, { filesIds });\n setSelectedFiles(files);\n\n return onChange({\n event: {\n target: {\n value: parsedValue,\n name: id,\n type,\n fileData: filesIds\n }\n },\n value: parsedValue\n });\n };\n\n const closeModalAndSetValue = (isSaving, values, toastMessage) => {\n if (toastMessage) {\n addToast(toastMessage, {\n appearance: 'success',\n autoDismiss: true\n });\n }\n\n if (isSaving) {\n const parsedValue = getFormat(type, { filesIds: simpleLayout ? values : currentValue });\n setDisplayModal(false);\n return onChange({\n event: { target: { value: parsedValue, name: id, type, currentValue } },\n value: parsedValue\n });\n }\n\n setCurrentValue(initialValue);\n setDisplayModal(false);\n };\n\n const fileUploadButtonText = getButtonText({ maxItems, value: initialValue, fileType });\n\n const filesPending = previewAllFiles\n ? 0\n : getNumberFilesPendingToFetch(currentOffset, currentValue);\n const onOpenLibrary = () => setDisplayModal(true);\n const handleEditModal = file => {\n const selectedEditFile = selectedFiles.find(({ id: _id }) => _id === file.id);\n setEditFile(selectedEditFile);\n };\n\n const handleEditFileForm = editedFile => {\n const values = parseFormValues(editedFile.valuesChecked);\n\n const { altText, caption, credits, hrefUrl, name } = values;\n setEditFile({\n ...editFile,\n name,\n data: {\n altText,\n caption,\n credits,\n hrefUrl\n }\n });\n };\n\n const orderFiles = (files, ids) =>\n ids.map(currentId => files.find(({ id: fileId }) => fileId === currentId)).filter(Boolean);\n\n const modalActions = [\n {\n textButton: 'Cancel',\n callback: () => {\n closeModalAndSetValue();\n },\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: () => {\n closeModalAndSetValue(true);\n },\n modifiers: []\n }\n ];\n\n const editModalActions = [\n {\n textButton: 'Cancel',\n callback: () => {\n setEditFile(null);\n },\n modifiers: ['cancel']\n },\n {\n textButton: 'Save',\n callback: async () => {\n const { name, id: editedFileId, data } = editFile;\n const updatedSelectedFiles = selectedFiles.map(selectedFile => {\n if (selectedFile.id === editedFileId) {\n return { ...selectedFile, name, data };\n }\n return selectedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n\n try {\n await client.mutate({\n mutation: getMutation('UPDATE_FILE'),\n variables: {\n input: {\n name,\n data,\n id: editedFileId\n }\n },\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 addToast(`File: ${editFile.name} has been updated`, {\n appearance: 'success',\n autoDismiss: true\n });\n closeModalAndSetValue(true);\n setEditFile(null);\n } catch (e) {\n addToast(`File: ${editFile.name} has not been updated`, {\n appearance: 'error',\n autoDismiss: true\n });\n console.error(e); //eslint-disable-line\n }\n },\n modifiers: []\n }\n ];\n const filesPendingString = `${filesPending} ${MORE}`;\n const fileListSpan = filesPending ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <span className=\"FileUploadAdapter__preview-link button button--link\" onClick={fetchMore}>\n + {filesPendingString}\n </span>\n ) : null;\n\n return (\n <>\n <div className=\"form-field form-field--button\">\n <label>\n {label} <Tooltip tooltipContent={tooltip} />\n </label>\n {selectedFiles && (\n <MediaContextProvider value={{ handleEditModal, onUnselectFile: handleSelectedFiles }}>\n {shouldRenderInPreview ? (\n <InjectPreview selector={FileUploadAdapter.previewerId}>\n <FileList\n selectedFiles={selectedFiles}\n allFiles={currentValue}\n handleReorderFiles={handleReorderFiles}\n canDragAndDrop={canDragAndDrop}\n fetchMore={fetchMore}>\n {fileListSpan}\n </FileList>\n </InjectPreview>\n ) : (\n <FileList\n selectedFiles={selectedFiles}\n handleReorderFiles={handleReorderFiles}\n fetchMore={fetchMore}\n />\n )}\n </MediaContextProvider>\n )}\n <FileUpload\n actionText={fileUploadButtonText}\n handleLibraryClick={() => {\n if (simpleLayout) {\n setDisplayFileUploadModal(true);\n } else {\n onOpenLibrary();\n }\n }}\n enableDragAndDrop={false}\n />\n </div>\n {editFile && (\n <Modal actions={editModalActions} title=\"Edit File\" onClose={() => setEditFile(null)}>\n <FilePreview\n file={editFile}\n fileName={editFile.fileName}\n handleFormChange={handleEditFileForm}\n displayForm\n previewType=\"card\"\n />\n </Modal>\n )}\n\n {displayFileUploadModal && simpleLayout && (\n <div className=\"file-upload-modal-wrapper\">\n <ListingContainer\n displayFileUploadModal={displayFileUploadModal}\n closeModalAndSetValue={closeModalAndSetValue}\n setDisplayFileUploadModal={setDisplayFileUploadModal}\n handleSelectedFiles={handleSelectedFiles}\n maxItems={currentLimit}\n simpleLayout={simpleLayout}\n filesSelected={currentValue.length > 1 ? currentValue : []}\n />\n </div>\n )}\n\n {displayModal && !simpleLayout && (\n <div className=\"file-upload-modal-wrapper\">\n <Modal\n actions={modalActions}\n className=\"file-upload-modal\"\n title=\"Media library\"\n onClose={() => closeModalAndSetValue()}>\n <ListingContainer\n closeModalAndSetValue={closeModalAndSetValue}\n displayFileUploadModal={displayFileUploadModal}\n setDisplayFileUploadModal={setDisplayFileUploadModal}\n handleSelectedFiles={handleSelectedFiles}\n maxItems={currentLimit}\n filesSelected={currentValue.length > 1 ? currentValue : []}\n />\n </Modal>\n </div>\n )}\n </>\n );\n};\n\nFileUploadAdapter.propTypes = {\n onChange: PropTypes.func.isRequired,\n label: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n maxItems: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n shouldRenderInPreview: PropTypes.bool,\n canDragAndDrop: PropTypes.bool,\n simpleLayout: PropTypes.bool,\n previewAllFiles: PropTypes.bool,\n tooltip: PropTypes.string,\n fileType: PropTypes.string\n};\n\nFileUploadAdapter.defaultProps = {\n value: '',\n maxItems: false,\n shouldRenderInPreview: false,\n canDragAndDrop: false,\n simpleLayout: false,\n previewAllFiles: false,\n tooltip: '',\n fileType: 'file'\n};\n\nexport default FileUploadAdapter;\n"],"mappings":"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","ignoreList":[]}
|