diff --git a/package.json b/package.json index 351b69f74..8f9fab70e 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,7 @@ "moment": "^2.29.1", "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.33", - "openstack-uicore-foundation": "5.0.18-beta.1", + "openstack-uicore-foundation": "5.0.17", "p-limit": "^6.1.0", "path-browserify": "^1.0.1", "postcss-loader": "^6.2.1", diff --git a/src/components/mui/formik-inputs/mui-formik-upload.js b/src/components/mui/formik-inputs/mui-formik-upload.js deleted file mode 100644 index db7a4dfd0..000000000 --- a/src/components/mui/formik-inputs/mui-formik-upload.js +++ /dev/null @@ -1,101 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import T from "i18n-react/dist/i18n-react"; -import { FormHelperText } from "@mui/material"; -import UploadInputV3 from "openstack-uicore-foundation/lib/components/inputs/upload-input-v3"; -import { useField } from "formik"; -import { - ALLOWED_INVENTORY_IMAGE_FORMATS, - MAX_INVENTORY_IMAGE_UPLOAD_SIZE, - MAX_INVENTORY_IMAGES_UPLOAD_QTY -} from "../../../utils/constants"; - -const MuiFormikUpload = ({ - id, - name, - onDelete, - maxFiles = MAX_INVENTORY_IMAGES_UPLOAD_QTY -}) => { - const [field, meta, helpers] = useField(name); - - const mediaType = { - max_size: MAX_INVENTORY_IMAGE_UPLOAD_SIZE, - max_uploads_qty: maxFiles, - type: { - allowed_extensions: ALLOWED_INVENTORY_IMAGE_FORMATS - } - }; - - const getInputValue = () => - field.value?.length > 0 - ? field.value.map((img) => ({ - ...img, - filename: - img.file_name ?? img.filename ?? img.file_path ?? img.file_url - })) - : []; - - const buildFileObject = (response) => { - const file = {}; - if (response.id !== undefined) file.id = response.id; - if (response.name) file.file_name = response.name; - if (response.md5) file.md5 = response.md5; - if (response.mime_type) file.mime_type = response.mime_type; - if (response.source_bucket) file.bucket = response.source_bucket; - if (response.size) file.size = response.size; - if (response.path && response.name) - file.file_path = `${response.path}${response.name}`; - return file; - }; - - const handleUploadComplete = (response) => { - if (response) { - const image = buildFileObject(response); - helpers.setValue([...(field.value || []), image]); - helpers.setTouched(true); - } - }; - - const handleRemove = (imageFile) => { - const updated = (field.value || []).filter( - (i) => i.filename !== imageFile.name - ); - helpers.setValue(updated); - if (onDelete) { - onDelete(imageFile.id); - } - }; - - const canAddMore = () => (field.value?.length || 0) < maxFiles; - - return ( - <> - {meta.touched && meta.error && ( - {meta.error} - )} - - - ); -}; - -MuiFormikUpload.propTypes = { - id: PropTypes.string, - name: PropTypes.string.isRequired, - onDelete: PropTypes.func, - maxFiles: PropTypes.number -}; - -export default MuiFormikUpload; diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js index 5241b752b..916d5d75f 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/modules/page-template-document-download-module.js @@ -3,9 +3,12 @@ import PropTypes from "prop-types"; import T from "i18n-react/dist/i18n-react"; import { useField } from "formik"; import { Divider, Grid2, InputLabel } from "@mui/material"; -import MuiFormikUpload from "../../../../../components/mui/formik-inputs/mui-formik-upload"; +import MuiFormikUpload from "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload"; import MuiFormikTextField from "../../../../../components/mui/formik-inputs/mui-formik-textfield"; -import { PAGE_MODULES_DOWNLOAD } from "../../../../../utils/constants"; +import { + ALLOWED_INVENTORY_IMAGE_FORMATS, + PAGE_MODULES_DOWNLOAD +} from "../../../../../utils/constants"; import MuiFormikRadioGroup from "../../../../../components/mui/formik-inputs/mui-formik-radio-group"; const DocumentDownloadModule = ({ baseName, index }) => { @@ -79,6 +82,7 @@ const DocumentDownloadModule = ({ baseName, index }) => { id={`document-module-upload-${index}`} name={buildFieldName("file")} maxFiles={1} + allowedExtensions={["pdf", ...ALLOWED_INVENTORY_IMAGE_FORMATS]} /> )} diff --git a/src/pages/sponsors-global/page-templates/page-template-popup/page-template-module-form.test.js b/src/pages/sponsors-global/page-templates/page-template-popup/page-template-module-form.test.js index a5b7042e7..8d4a77efa 100644 --- a/src/pages/sponsors-global/page-templates/page-template-popup/page-template-module-form.test.js +++ b/src/pages/sponsors-global/page-templates/page-template-popup/page-template-module-form.test.js @@ -30,7 +30,7 @@ jest.mock( ); jest.mock( - "../../../../components/mui/formik-inputs/mui-formik-upload", + "openstack-uicore-foundation/lib/components/mui/formik-inputs/upload", () => function MockMuiFormikUpload({ name }) { return
Upload
; diff --git a/yarn.lock b/yarn.lock index 210f5d00f..33c1761b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9056,10 +9056,10 @@ open@^10.0.3: is-inside-container "^1.0.0" wsl-utils "^0.1.0" -openstack-uicore-foundation@5.0.18-beta.1: - version "5.0.18-beta.1" - resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.18-beta.1.tgz#f79763d84cbe555c5401e254dbd756675bb52043" - integrity sha512-szrIkY99ljJwowsd3jsbmnOTd7hq3SeOTKCB2FFWu06hQ1FdRwX+vew6uqMTiXrIZt+DJlLaUXnd/bQaXCLqeg== +openstack-uicore-foundation@5.0.17: + version "5.0.17" + resolved "https://registry.yarnpkg.com/openstack-uicore-foundation/-/openstack-uicore-foundation-5.0.17.tgz#1438766e41761789afe6487840cc78139c249fad" + integrity sha512-P8z1Vm8X0as6vMsuwUaNhROkVym1DoBUB6bbIE30i8r24wmNKbkvokb+dtYxFvQ/PN4TuCwXAORw/g2zOsrdJA== optionator@^0.9.1: version "0.9.4"