@godaddy/react
Version:
The `createCheckoutSession` function creates a new checkout session with GoDaddy's commerce API.
45 lines (43 loc) • 1.64 kB
JavaScript
import { H as Button, O as PaymentMethodType, Q as useIsPaymentDisabled, _ as useConfirmCheckout, g as PaymentProvider, o as useCheckoutContext, rt as useGoDaddyContext } from "./checkout-B7yB0DfE.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 };