Skip to content

Commit 29eed85

Browse files
committed
Add provision to update validation schema for payment method and shipping method sections
1 parent 3dffc1f commit 29eed85

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

src/reactapp/src/components/paymentMethod/components/PaymentMethodFormManager.jsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useMemo, useState } from 'react';
1+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
22
import { Form } from 'formik';
33
import { node } from 'prop-types';
44
import { string as YupString } from 'yup';
@@ -32,6 +32,16 @@ function PaymentMethodFormManager({ children, formikData }) {
3232
const { setMessage, setPageLoader, setErrorMessage, setSuccessMessage } =
3333
usePaymentMethodAppContext();
3434

35+
/**
36+
* This can be used to add additional validations for payment method
37+
*/
38+
const updateValidationSchema = useCallback((validationSchemaToUpdate) => {
39+
setValidationSchema((oldValidationSchema) => ({
40+
...oldValidationSchema,
41+
...validationSchemaToUpdate,
42+
}));
43+
}, []);
44+
3545
const formSubmit = async (paymentMethod) => {
3646
setMessage(false);
3747

@@ -80,8 +90,15 @@ function PaymentMethodFormManager({ children, formikData }) {
8090
validationSchema,
8191
setInitialValues,
8292
setValidationSchema,
93+
updateValidationSchema,
8394
}),
84-
[formContext, formikData, validationSchema, initialValues]
95+
[
96+
formikData,
97+
formContext,
98+
initialValues,
99+
validationSchema,
100+
updateValidationSchema,
101+
]
85102
);
86103

87104
return (

src/reactapp/src/components/shippingMethod/components/ShippingMethodFormManager.jsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useMemo, useState } from 'react';
1+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
22
import { Form } from 'formik';
33
import { node } from 'prop-types';
44
import { string as YupString } from 'yup';
@@ -36,6 +36,16 @@ function ShippingMethodFormManager({ children, formikData }) {
3636
const { setMessage, setPageLoader, setErrorMessage, setSuccessMessage } =
3737
useShippingMethodAppContext();
3838

39+
/**
40+
* This can be used to add additional validations for shipping method
41+
*/
42+
const updateValidationSchema = useCallback((validationSchemaToUpdate) => {
43+
setValidationSchema((oldValidationSchema) => ({
44+
...oldValidationSchema,
45+
...validationSchemaToUpdate,
46+
}));
47+
}, []);
48+
3949
const formSubmit = async (shippingMethod) => {
4050
setMessage(false);
4151

@@ -97,10 +107,17 @@ function ShippingMethodFormManager({ children, formikData }) {
97107
validationSchema,
98108
setInitialValues,
99109
setValidationSchema,
110+
updateValidationSchema,
100111
...formikData,
101112
...formSectionContext,
102113
}),
103-
[validationSchema, formikData, formSectionContext, initialValues]
114+
[
115+
formikData,
116+
initialValues,
117+
validationSchema,
118+
formSectionContext,
119+
updateValidationSchema,
120+
]
104121
);
105122

106123
return (

0 commit comments

Comments
 (0)