woocommerce/plugins/woocommerce-blocks/assets/js/base/hooks/checkout/use-checkout-submit.js

44 lines
1.0 KiB
JavaScript

/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import {
useCheckoutContext,
usePaymentMethodDataContext,
} from '@woocommerce/base-context';
/**
* Internal dependencies
*/
import { usePaymentMethods } from '../payment-methods';
/**
* Returns the submitButtonText, onSubmit interface from the checkout context,
* and an indication of submission status.
*/
export const useCheckoutSubmit = () => {
const {
onSubmit,
isCalculating,
isBeforeProcessing,
isProcessing,
isAfterProcessing,
isComplete,
hasError,
} = useCheckoutContext();
const { paymentMethods = {} } = usePaymentMethods();
const { activePaymentMethod } = usePaymentMethodDataContext();
const paymentMethod = paymentMethods[ activePaymentMethod ] || {};
return {
submitButtonText:
paymentMethod?.placeOrderButtonLabel ||
__( 'Place Order', 'woo-gutenberg-products-block' ),
onSubmit,
isCalculating,
waitingForProcessing:
isProcessing || isAfterProcessing || isBeforeProcessing,
waitingForRedirect: isComplete && ! hasError,
};
};