UNPKG

@godaddy/react

Version:

The `createCheckoutSession` function creates a new checkout session with GoDaddy's commerce API.

41 lines (39 loc) 1.57 kB
import { H as Button, Q as useIsPaymentDisabled, h as usePayPalProvider, o as useCheckoutContext, rt as useGoDaddyContext } from "./checkout-B7yB0DfE.js"; import "./utils-DWBfAHfx.js"; import { useCallback, useState } from "react"; import { useFormContext } from "react-hook-form"; import { jsx } from "react/jsx-runtime"; //#region src/components/checkout/payment/checkout-buttons/credit-card/paypal.tsx function PayPalCreditCardCheckoutButton() { const { t } = useGoDaddyContext(); const { isConfirmingCheckout } = useCheckoutContext(); const isPaymentDisabled = useIsPaymentDisabled(); const form = useFormContext(); const { cardFieldsRef, isCardFieldsReady } = usePayPalProvider(); const [isProcessing, setIsProcessing] = useState(false); const handleSubmit = useCallback(async () => { try { setIsProcessing(true); if (!await form.trigger()) { const firstError = Object.keys(form.formState.errors)[0]; if (firstError) form.setFocus(firstError); return; } if (!cardFieldsRef.current || !cardFieldsRef.current.isEligible()) return; await cardFieldsRef.current.submit(); } catch (_error) {} finally { setIsProcessing(false); } }, [form, cardFieldsRef]); if (!isCardFieldsReady || !cardFieldsRef.current) return null; return /* @__PURE__ */ jsx(Button, { className: "w-full", size: "lg", type: "button", onClick: handleSubmit, disabled: isConfirmingCheckout || isPaymentDisabled || !isCardFieldsReady || isProcessing, children: t.payment.payNow }); } //#endregion export { PayPalCreditCardCheckoutButton };