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

42 lines
1.1 KiB
JavaScript

import { createElement } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
import { STORE_NAME } from '../../stores/axoStore';
/**
* Renders a button to change the selected card in the checkout process.
*
* @return {JSX.Element|null} The rendered button as an anchor tag, or null if conditions aren't met.
*/
const CardChangeButton = () => {
const { isGuest, cardDetails, cardChangeHandler } = useSelect(
( select ) => ( {
isGuest: select( STORE_NAME ).getIsGuest(),
cardDetails: select( STORE_NAME ).getCardDetails(),
cardChangeHandler: select( STORE_NAME ).getCardChangeHandler(),
} ),
[]
);
if ( isGuest || ! cardDetails || ! cardChangeHandler ) {
return null;
}
return createElement(
'a',
{
className:
'wc-block-checkout-axo-block-card__edit wc-block-axo-change-link',
role: 'button',
onClick: ( event ) => {
// Prevent default anchor behavior
event.preventDefault();
// Call the provided click handler
cardChangeHandler();
},
},
__( 'Choose a different card', 'woocommerce-paypal-payments' )
);
};
export default CardChangeButton;