/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { useEmitResponse, useExpressPaymentMethods, } from '@woocommerce/base-context/hooks'; import { StoreNoticesProvider, useCheckoutContext, usePaymentMethodDataContext, useEditorContext, } from '@woocommerce/base-context'; import Title from '@woocommerce/base-components/title'; import LoadingMask from '@woocommerce/base-components/loading-mask'; import { CURRENT_USER_IS_ADMIN } from '@woocommerce/settings'; /** * Internal dependencies */ import ExpressPaymentMethods from '../express-payment-methods'; import './style.scss'; const CheckoutExpressPayment = () => { const { isCalculating, isProcessing, isAfterProcessing, isBeforeProcessing, isComplete, hasError, } = useCheckoutContext(); const { currentStatus: paymentStatus } = usePaymentMethodDataContext(); const { paymentMethods, isInitialized } = useExpressPaymentMethods(); const { isEditor } = useEditorContext(); const { noticeContexts } = useEmitResponse(); if ( ! isInitialized || ( isInitialized && Object.keys( paymentMethods ).length === 0 ) ) { // Make sure errors are shown in the editor and for admins. For example, // when a payment method fails to register. if ( isEditor || CURRENT_USER_IS_ADMIN ) { return ( ); } return null; } // Set loading state for express payment methods when payment or checkout is in progress. const checkoutProcessing = isProcessing || isAfterProcessing || isBeforeProcessing || ( isComplete && ! hasError ); return ( <>
{ __( 'Express checkout', 'woo-gutenberg-products-block' ) }

{ __( 'In a hurry? Use one of our express checkout options:', 'woo-gutenberg-products-block' ) }

{ __( 'Or continue below', 'woo-gutenberg-products-block' ) }
); }; export default CheckoutExpressPayment;