UNPKG

@godaddy/react

Version:

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

45 lines (43 loc) 1.64 kB
import { H as Button, O as PaymentMethodType, Q as useIsPaymentDisabled, _ as useConfirmCheckout, g as PaymentProvider, o as useCheckoutContext, rt as useGoDaddyContext } from "./checkout-CCruxHvk.js"; import { k as GraphQLErrorWithCodes, t as cn } from "./utils-DWBfAHfx.js"; import { useCallback } from "react"; import { useFormContext } from "react-hook-form"; import { jsx } from "react/jsx-runtime"; //#region src/components/checkout/payment/checkout-buttons/offline/default.tsx function OfflinePaymentCheckoutButton() { const { t } = useGoDaddyContext(); const { setCheckoutErrors, isConfirmingCheckout } = useCheckoutContext(); const isPaymentDisabled = useIsPaymentDisabled(); const form = useFormContext(); const confirmCheckout = useConfirmCheckout(); const handleSubmit = useCallback(async () => { if (!await form.trigger()) { const firstError = Object.keys(form.formState.errors)[0]; if (firstError) form.setFocus(firstError); return; } try { await confirmCheckout.mutateAsync({ paymentToken: "", paymentType: PaymentMethodType.OFFLINE, paymentProvider: PaymentProvider.OFFLINE }); } catch (err) { if (err instanceof GraphQLErrorWithCodes) setCheckoutErrors(err.codes); } }, [ form, confirmCheckout.mutateAsync, setCheckoutErrors ]); return /* @__PURE__ */ jsx(Button, { className: cn("w-full", isPaymentDisabled || isConfirmingCheckout ? "opacity-80" : ""), size: "lg", type: "submit", disabled: isPaymentDisabled || isConfirmingCheckout, onClick: handleSubmit, children: t.payment.completeOrder }); } //#endregion export { OfflinePaymentCheckoutButton };