From 2de9b41270242e4da843472313faff9d9aca6575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Fri, 9 Jan 2026 03:15:24 -0300 Subject: [PATCH 1/2] feat: page modules generic component, test, adjusting formik inputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../formik-inputs/mui-formik-datepicker.js | 6 +- .../formik-inputs/mui-formik-radio-group.js | 11 +- .../mui/formik-inputs/mui-formik-select.js | 15 +- .../mui/formik-inputs/mui-formik-upload.js | 83 ++- src/i18n/en.json | 21 +- .../page-template-module-form.test.js | 497 ++++++++++++++++++ .../page-template-modules-form.js | 349 ++++++++++++ src/utils/constants.js | 12 + 8 files changed, 969 insertions(+), 25 deletions(-) create mode 100644 src/pages/sponsors-global/page-templates/page-template-module-form.test.js create mode 100644 src/pages/sponsors-global/page-templates/page-template-modules-form.js diff --git a/src/components/mui/formik-inputs/mui-formik-datepicker.js b/src/components/mui/formik-inputs/mui-formik-datepicker.js index 3bb67cecc..a9c23486f 100644 --- a/src/components/mui/formik-inputs/mui-formik-datepicker.js +++ b/src/components/mui/formik-inputs/mui-formik-datepicker.js @@ -19,8 +19,7 @@ const MuiFormikDatepicker = ({ name, label, required }) => { label: required ? requiredLabel : label, error: meta.touched && Boolean(meta.error), helperText: meta.touched && meta.error, - fullWidth: true, - margin: "normal" + fullWidth: true }, day: { sx: { @@ -36,6 +35,9 @@ const MuiFormikDatepicker = ({ name, label, required }) => { } } }} + margin="normal" + // eslint-disable-next-line react/jsx-props-no-spreading + {...props} /> ); diff --git a/src/components/mui/formik-inputs/mui-formik-radio-group.js b/src/components/mui/formik-inputs/mui-formik-radio-group.js index 01200434f..79cb82327 100644 --- a/src/components/mui/formik-inputs/mui-formik-radio-group.js +++ b/src/components/mui/formik-inputs/mui-formik-radio-group.js @@ -10,13 +10,19 @@ import { } from "@mui/material"; import { useField } from "formik"; -const MuiFormikRadioGroup = ({ name, label, options, ...props }) => { +const MuiFormikRadioGroup = ({ + name, + label, + margin = "normal", + options, + ...props +}) => { const [field, meta] = useField({ name }); return ( {label && {label}} @@ -56,6 +62,7 @@ const MuiFormikRadioGroup = ({ name, label, options, ...props }) => { MuiFormikRadioGroup.propTypes = { name: PropTypes.string.isRequired, label: PropTypes.string, + margin: PropTypes.string, options: PropTypes.array.isRequired }; diff --git a/src/components/mui/formik-inputs/mui-formik-select.js b/src/components/mui/formik-inputs/mui-formik-select.js index f8c2aa75e..8bde07ba0 100644 --- a/src/components/mui/formik-inputs/mui-formik-select.js +++ b/src/components/mui/formik-inputs/mui-formik-select.js @@ -5,13 +5,15 @@ import { FormHelperText, FormControl, InputAdornment, - IconButton + IconButton, + InputLabel } from "@mui/material"; import ClearIcon from "@mui/icons-material/Clear"; import { useField } from "formik"; const MuiFormikSelect = ({ name, + label, placeholder, children, isClearable, @@ -24,12 +26,23 @@ const MuiFormikSelect = ({ helpers.setValue(""); }; + const hasValue = + field.value !== "" && field.value !== undefined && field.value !== null; + return ( + {label && ( + + {label} + + )}