All files / app/payment/paymentMethod MonerisPaymentMethod.tsx

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 33 34 35 36 37 38 39 40 41 42 43 44 45  24x   24x   24x       24x 2x 2x 2x 2x 2x 2x     2x   2x 1x   1x 2x               2x                     24x  
import { CardInstrument, PaymentInitializeOptions } from '@bigcommerce/checkout-sdk';
import React, { useCallback, FunctionComponent } from 'react';
 
import { withHostedCreditCardFieldset, WithInjectedHostedCreditCardFieldsetProps } from '../hostedCreditCard';
 
import HostedWidgetPaymentMethod, { HostedWidgetPaymentMethodProps } from './HostedWidgetPaymentMethod';
 
export type MonerisPaymentMethodProps = Omit< HostedWidgetPaymentMethodProps, 'containerId'>;
 
const MonerisPaymentMethod: FunctionComponent<MonerisPaymentMethodProps & WithInjectedHostedCreditCardFieldsetProps> = ({
    initializePayment,
    method,
    getHostedFormOptions,
    getHostedStoredCardValidationFieldset,
    hostedStoredCardValidationSchema,
    ...rest
}) => {
 
    const containerId = `moneris-iframe-container`;
 
    const initializeMonerisPayment: HostedWidgetPaymentMethodProps['initializePayment'] = useCallback(async (options: PaymentInitializeOptions, selectedInstrument) => initializePayment({
        ...options,
        moneris: {
            containerId,
            ...(EselectedInstrument && { form : await getHostedFormOptions(selectedInstrument) }),
        },
    }), [containerId, getHostedFormOptions, initializePayment]);
 
    function validateInstrument(_shouldShowNumber: boolean, selectedInstrument: CardInstrument) {
        return getHostedStoredCardValidationFieldset(selectedInstrument);
    }
 
    return (
        <HostedWidgetPaymentMethod
            { ...rest }
            containerId={ containerId }
            initializePayment={ initializeMonerisPayment }
            method={ method }
            storedCardValidationSchema={ hostedStoredCardValidationSchema }
            validateInstrument={ validateInstrument }
        />);
};
 
export default withHostedCreditCardFieldset(MonerisPaymentMethod);