Merge branch 'dev' into test
This commit is contained in:
@@ -14,9 +14,11 @@ import {
|
|||||||
import { loadStripe } from "@stripe/stripe-js";
|
import { loadStripe } from "@stripe/stripe-js";
|
||||||
|
|
||||||
import { ROUTES } from "@/router/routes";
|
import { ROUTES } from "@/router/routes";
|
||||||
|
import { Logger } from "@/utils";
|
||||||
|
|
||||||
import styles from "./stripe-payment-dialog.module.css";
|
import styles from "./stripe-payment-dialog.module.css";
|
||||||
|
|
||||||
|
const log = new Logger("SubscriptionStripePaymentDialog");
|
||||||
const stripePublishableKey = process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY;
|
const stripePublishableKey = process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY;
|
||||||
const stripePromise = stripePublishableKey
|
const stripePromise = stripePublishableKey
|
||||||
? loadStripe(stripePublishableKey)
|
? loadStripe(stripePublishableKey)
|
||||||
@@ -104,6 +106,21 @@ function StripePaymentForm({
|
|||||||
const [errorMessage, setErrorMessage] = useState<string | null>(null);
|
const [errorMessage, setErrorMessage] = useState<string | null>(null);
|
||||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||||
|
|
||||||
|
const handleLoadError = (event: Parameters<
|
||||||
|
NonNullable<React.ComponentProps<typeof PaymentElement>["onLoadError"]>
|
||||||
|
>[0]) => {
|
||||||
|
log.error("[stripe-payment-dialog] PaymentElement load failed", {
|
||||||
|
type: event.error.type,
|
||||||
|
code: event.error.code,
|
||||||
|
message: event.error.message,
|
||||||
|
declineCode: event.error.decline_code,
|
||||||
|
});
|
||||||
|
setErrorMessage(
|
||||||
|
event.error.message ??
|
||||||
|
"Payment methods could not be loaded. Please try again later.",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const handleSubmit = async (event: FormEvent<HTMLFormElement>) => {
|
const handleSubmit = async (event: FormEvent<HTMLFormElement>) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
if (!stripe || !elements || isSubmitting) return;
|
if (!stripe || !elements || isSubmitting) return;
|
||||||
@@ -141,7 +158,7 @@ function StripePaymentForm({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<form className={styles.form} onSubmit={handleSubmit}>
|
<form className={styles.form} onSubmit={handleSubmit}>
|
||||||
<PaymentElement />
|
<PaymentElement onLoadError={handleLoadError} />
|
||||||
{errorMessage ? (
|
{errorMessage ? (
|
||||||
<p role="alert" className={styles.error}>
|
<p role="alert" className={styles.error}>
|
||||||
{errorMessage}
|
{errorMessage}
|
||||||
|
|||||||
Reference in New Issue
Block a user