From 05b5e908cc7fff7909c6e7d23857b530e5f7621f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 30 Jun 2026 14:51:15 -0300 Subject: [PATCH 1/2] feat: add mui formik text editor 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-text-editor.js | 32 +++++++++++++++++++ src/utils/methods.js | 6 ++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/mui/formik-inputs/mui-formik-text-editor.js diff --git a/src/components/mui/formik-inputs/mui-formik-text-editor.js b/src/components/mui/formik-inputs/mui-formik-text-editor.js new file mode 100644 index 00000000..45749b07 --- /dev/null +++ b/src/components/mui/formik-inputs/mui-formik-text-editor.js @@ -0,0 +1,32 @@ +import React from "react"; +import { useField } from "formik"; +import { InputLabel } from "@mui/material"; +import TextEditorV3 from "../../inputs/editor-input-v3"; +import { normalizeHtmlString } from "../../../utils/methods"; + +const FormikTextEditor = ({ name, options = {}, licence, ...props }) => { + const [field, meta, helpers] = useField(name); + const mergedOptions = { tabIndex: 0, allowTabNavigation: true, ...options }; + + return ( + <> + + {label} + + { + const stringValue = normalizeHtmlString(e.target.value); + helpers.setValue(stringValue); + }} + error={meta.touched && meta.error} + license={licence} + {...props} + /> + + ); +}; + +export default FormikTextEditor; diff --git a/src/utils/methods.js b/src/utils/methods.js index e318325e..f685dac5 100644 --- a/src/utils/methods.js +++ b/src/utils/methods.js @@ -311,3 +311,9 @@ export const empty = (value) => { }; export const isSentryInitialized = () => typeof window !== "undefined" && !!window.SENTRY_DSN; + +export const normalizeHtmlString = (textInput) => { + if (!textInput) return ""; + const doc = new DOMParser().parseFromString(textInput, "text/html"); + return doc.body.textContent.trim().length === 0 ? "" : textInput; +}; \ No newline at end of file From 1c505b7a855f5bbee0195d40703276c01b8d1a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 30 Jun 2026 17:25:10 -0300 Subject: [PATCH 2/2] fix: label prop and conditional rendering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../mui/formik-inputs/mui-formik-text-editor.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/mui/formik-inputs/mui-formik-text-editor.js b/src/components/mui/formik-inputs/mui-formik-text-editor.js index 45749b07..96607782 100644 --- a/src/components/mui/formik-inputs/mui-formik-text-editor.js +++ b/src/components/mui/formik-inputs/mui-formik-text-editor.js @@ -4,15 +4,17 @@ import { InputLabel } from "@mui/material"; import TextEditorV3 from "../../inputs/editor-input-v3"; import { normalizeHtmlString } from "../../../utils/methods"; -const FormikTextEditor = ({ name, options = {}, licence, ...props }) => { +const FormikTextEditor = ({ name, label = "", options = {}, licence, ...props }) => { const [field, meta, helpers] = useField(name); const mergedOptions = { tabIndex: 0, allowTabNavigation: true, ...options }; return ( <> - - {label} - + {label && ( + + {label} + + )}