All files / app/payment getPaymentValidationSchema.ts

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32  3x   3x                   3x 10x 10x 10x       10x       10x     10x        
import { LanguageService } from '@bigcommerce/checkout-sdk';
import { object, string, ObjectSchema, StringSchema } from 'yup';
 
import { getTermsConditionsValidationSchema } from '../termsConditions';
 
import { PaymentFormValues } from './PaymentForm';
 
export interface PaymentValidationSchemaOptions {
    additionalValidation?: ObjectSchema<Partial<PaymentFormValues>>;
    isTermsConditionsRequired: boolean;
    language: LanguageService;
}
 
export default function getPaymentValidationSchema({
    additionalValidation,
    isTermsConditionsRequired,
    language,
}: PaymentValidationSchemaOptions): ObjectSchema<PaymentFormValues> {
    const schemaFields: {
        paymentProviderRadio: StringSchema;
    } = {
        paymentProviderRadio: string().required(),
    };
 
    const schemaFieldsWithTerms = object(schemaFields)
        .concat(getTermsConditionsValidationSchema({ isTermsConditionsRequired, language }));
 
    return additionalValidation ?
        schemaFieldsWithTerms.concat(additionalValidation as any) :
        schemaFieldsWithTerms;
}