/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { useCheckoutContext, useEditorContext, usePaymentMethodDataContext, } from '@woocommerce/base-context'; import CheckboxControl from '@woocommerce/base-components/checkbox-control'; import PropTypes from 'prop-types'; /** * Internal dependencies */ import PaymentMethodErrorBoundary from './payment-method-error-boundary'; /** * Component used to render the contents of a payment method tab. * * @param {Object} props Incoming props for the component. * @param {boolean} props.showSaveOption Whether that payment method allows saving * the data for future purchases and should * display the checkbox to do so. * @param {Object} props.children Content of the payment method tab. * * @return {*} The rendered component. */ const PaymentMethodTab = ( { children, showSaveOption } ) => { const { isEditor } = useEditorContext(); const { shouldSavePayment, setShouldSavePayment, } = usePaymentMethodDataContext(); const { customerId } = useCheckoutContext(); return ( { children } { customerId > 0 && showSaveOption && ( setShouldSavePayment( ! shouldSavePayment ) } /> ) } ); }; PaymentMethodTab.propTypes = { showSaveOption: PropTypes.bool, children: PropTypes.node, }; export default PaymentMethodTab;