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

47 lines
1.2 KiB
JavaScript
Raw Normal View History

import { useEffect, useCallback } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import { Card } from '../Card';
import { STORE_NAME } from '../../stores/axoStore';
2024-09-05 21:17:36 +02:00
export const Payment = ( { fastlaneSdk, card, onPaymentLoad } ) => {
const isGuest = useSelect( ( select ) =>
select( STORE_NAME ).getIsGuest()
);
const isEmailLookupCompleted = useSelect( ( select ) =>
select( STORE_NAME ).getIsEmailLookupCompleted()
);
const loadPaymentComponent = useCallback( async () => {
if ( isGuest && isEmailLookupCompleted ) {
const paymentComponent = await fastlaneSdk.FastlaneCardComponent(
{}
);
paymentComponent.render( `#fastlane-card` );
onPaymentLoad( paymentComponent );
2024-09-05 21:17:36 +02:00
}
}, [ isGuest, isEmailLookupCompleted, fastlaneSdk, onPaymentLoad ] );
2024-09-05 21:17:36 +02:00
useEffect( () => {
loadPaymentComponent();
}, [ loadPaymentComponent ] );
if ( isGuest ) {
if ( isEmailLookupCompleted ) {
return <div id="fastlane-card" key="fastlane-card" />;
}
return (
<div id="ppcp-axo-block-radio-content">
Enter your email address above to continue.
</div>
);
}
return (
<Card
card={ card }
fastlaneSdk={ fastlaneSdk }
showWatermark={ ! isGuest }
/>
2024-09-05 21:17:36 +02:00
);
};