woocommerce-paypal-payments/modules/ppcp-axo-block/resources/js/hooks/useHandlePaymentSetup.js
Philipp Stracker 78e0da27a1
🔊 More descriptive error message
New error reason when tokenization fails due to missing paymentComponent
2024-09-16 15:13:25 +02:00

44 lines
959 B
JavaScript

import { useCallback } from '@wordpress/element';
const useHandlePaymentSetup = (
emitResponse,
card,
paymentComponent,
tokenizedCustomerData
) => {
return useCallback( async () => {
const isRyanFlow = !! card?.id;
let cardToken = card?.id;
if ( ! cardToken && paymentComponent ) {
cardToken = await paymentComponent
.getPaymentToken( tokenizedCustomerData )
.then( ( response ) => response.id );
}
if ( ! cardToken ) {
let reason = 'tokenization error';
if ( ! paymentComponent ) {
reason = 'initialization error';
}
return {
type: emitResponse.responseTypes.ERROR,
message: `Could not process the payment (${ reason })`,
};
}
return {
type: emitResponse.responseTypes.SUCCESS,
meta: {
paymentMethodData: {
fastlane_member: isRyanFlow,
axo_nonce: cardToken,
},
},
};
}, [ card, paymentComponent, tokenizedCustomerData ] );
};
export default useHandlePaymentSetup;