Skip to content

Commit 5e468d2

Browse files
committed
fix: change yup string validation for html
1 parent e32226a commit 5e468d2

5 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/pages/sponsors-global/form-templates/form-template-popup.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import AdditionalInputList from "../../../components/mui/formik-inputs/additiona
2222
import useScrollToError from "../../../hooks/useScrollToError";
2323
import {
2424
formMetafieldsValidation,
25+
requiredHTMLValidation,
2526
requiredStringValidation
2627
} from "../../../utils/yup";
2728

@@ -53,7 +54,7 @@ const FormTemplateDialog = ({
5354
validationSchema: yup.object().shape({
5455
code: requiredStringValidation(),
5556
name: requiredStringValidation(),
56-
instructions: requiredStringValidation(),
57+
instructions: requiredHTMLValidation(),
5758
meta_fields: formMetafieldsValidation()
5859
}),
5960
enableReinitialize: true,

src/pages/sponsors-global/form-templates/sponsor-inventory-popup.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ import {
3232
decimalValidation,
3333
requiredStringValidation,
3434
positiveNumberValidation,
35-
formMetafieldsValidation
35+
formMetafieldsValidation,
36+
requiredHTMLValidation
3637
} from "../../../utils/yup";
3738
import AdditionalInputList from "../../../components/mui/formik-inputs/additional-input/additional-input-list";
3839
import MuiFormikQuantityField from "../../../components/mui/formik-inputs/mui-formik-quantity-field";
@@ -66,7 +67,7 @@ const SponsorItemDialog = ({
6667
validationSchema: yup.object().shape({
6768
code: requiredStringValidation(),
6869
name: requiredStringValidation(),
69-
description: requiredStringValidation(),
70+
description: requiredHTMLValidation(),
7071
images: yup.array(),
7172
early_bird_rate: decimalValidation(),
7273
standard_rate: decimalValidation(),

src/pages/sponsors/sponsor-form-item-list-page/components/sponsor-form-item-form.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
decimalValidation,
1919
formMetafieldsValidation,
2020
positiveNumberValidation,
21+
requiredHTMLValidation,
2122
requiredStringValidation
2223
} from "../../../../utils/yup";
2324
import MuiFormikTextField from "../../../../components/mui/formik-inputs/mui-formik-textfield";
@@ -38,7 +39,7 @@ const SponsorFormItemForm = ({ initialValues, onSubmit }) => {
3839
validationSchema: yup.object({
3940
code: requiredStringValidation(),
4041
name: requiredStringValidation(),
41-
description: requiredStringValidation(),
42+
description: requiredHTMLValidation(),
4243
early_bird_rate: decimalValidation(),
4344
standard_rate: decimalValidation(),
4445
onsite_rate: decimalValidation(),

src/pages/sponsors/sponsor-forms-list-page/components/form-template/form-template-form.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
addIssAfterDateFieldValidator,
1818
formMetafieldsValidation,
1919
opensAtValidation,
20+
requiredHTMLValidation,
2021
requiredStringValidation
2122
} from "../../../../../utils/yup";
2223
import DropdownCheckbox from "../../../../../components/mui/dropdown-checkbox";
@@ -51,7 +52,7 @@ const FormTemplateForm = ({
5152
initialValues: buildInitialValues(initialValues, summitTZ),
5253
validationSchema: yup.object({
5354
code: requiredStringValidation(),
54-
instructions: requiredStringValidation(),
55+
instructions: requiredHTMLValidation(),
5556
opens_at: opensAtValidation(),
5657
expires_at: yup
5758
.date(T.translate("validation.date"))

src/utils/yup.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,22 @@ export const rateCellValidation = () =>
8787
export const requiredStringValidation = () =>
8888
yup.string().required(T.translate("validation.required"));
8989

90+
const stripHtmlTags = (htmlString) => htmlString.replace(/<[^>]*>/g, "");
91+
92+
export const requiredHTMLValidation = () =>
93+
yup
94+
.string()
95+
.transform((value, originalValue) => {
96+
// If the value is a string, strip HTML tags
97+
if (typeof originalValue === "string") {
98+
const strippedValue = stripHtmlTags(originalValue);
99+
// Return the stripped value for subsequent validation
100+
return strippedValue.trim(); // Also trim whitespace
101+
}
102+
return value; // Handle non-string values appropriately
103+
})
104+
.required(T.translate("validation.required"));
105+
90106
export const positiveNumberValidation = () =>
91107
numberValidation()
92108
.integer(T.translate("validation.integer"))

0 commit comments

Comments
 (0)