@godaddy/react
Version:
The `createCheckoutSession` function creates a new checkout session with GoDaddy's commerce API.
51 lines (49 loc) • 1.77 kB
JavaScript
import { f as useStripePaymentIntent, o as useCheckoutContext, rt as useGoDaddyContext } from "./checkout-B7yB0DfE.js";
import "./utils-DWBfAHfx.js";
import { useCallback, useState } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
import { CardElement } from "@stripe/react-stripe-js";
//#region src/components/checkout/payment/payment-methods/credit-card/stripe.tsx
function StripeCreditCardForm() {
const { t } = useGoDaddyContext();
const { stripeConfig } = useCheckoutContext();
const [cardError, setCardError] = useState(null);
const handleCardChange = useCallback((event) => {
if (event.error) setCardError(event.error.message);
else setCardError(null);
}, []);
if (!stripeConfig) return /* @__PURE__ */ jsx("div", {
className: "text-destructive",
children: t.errors.stripeConfigMissing
});
const { isLoading } = useStripePaymentIntent();
if (isLoading) return null;
return /* @__PURE__ */ jsxs("div", {
className: "space-y-4",
children: [
/* @__PURE__ */ jsx("label", {
htmlFor: "stripe-card-element",
className: "block text-sm font-medium mb-1 sr-only",
children: t.payment.cardDetails
}),
/* @__PURE__ */ jsx("div", {
className: "border border-input rounded px-3 py-2 bg-white focus-within:ring-2 focus-within:ring-primary transition",
children: /* @__PURE__ */ jsx(CardElement, {
onChange: handleCardChange,
id: "stripe-card-element",
options: {
style: { base: { fontSize: "16px" } },
hidePostalCode: true
},
"aria-labelledby": "stripe-card-element"
})
}),
cardError && /* @__PURE__ */ jsx("p", {
className: "text-[0.8rem] font-medium text-destructive",
children: cardError
})
]
});
}
//#endregion
export { StripeCreditCardForm };