woocommerce-paypal-payments/modules/ppcp-axo-block/resources/js/components/Payment.js

37 lines
828 B
JavaScript
Raw Normal View History

import { useEffect, useCallback } from '@wordpress/element';
import { CreditCard } from './CreditCard';
2024-09-05 21:17:36 +02:00
export const Payment = ( {
fastlaneSdk,
card,
shippingAddress,
isGuest,
2024-09-05 21:17:36 +02:00
onPaymentLoad,
} ) => {
// Memoized Fastlane card rendering
const loadPaymentComponent = useCallback( async () => {
if ( isGuest ) {
const paymentComponent = await fastlaneSdk.FastlaneCardComponent(
{}
);
paymentComponent.render( `#fastlane-card` );
onPaymentLoad( paymentComponent );
2024-09-05 21:17:36 +02:00
}
}, [ isGuest, fastlaneSdk, onPaymentLoad ] );
2024-09-05 21:17:36 +02:00
useEffect( () => {
loadPaymentComponent();
}, [ loadPaymentComponent ] );
return isGuest ? (
2024-09-05 21:17:36 +02:00
<div id="fastlane-card" key="fastlane-card" />
) : (
<CreditCard
key="custom-card"
card={ card }
shippingAddress={ shippingAddress }
fastlaneSdk={ fastlaneSdk }
/>
2024-09-05 21:17:36 +02:00
);
};