2023-02-16 22:39:57 +00:00
|
|
|
import type { Stripe } from "@stripe/stripe-js";
|
2022-01-03 22:50:59 +00:00
|
|
|
import { loadStripe } from "@stripe/stripe-js/pure";
|
2021-09-22 18:36:13 +00:00
|
|
|
|
2022-03-09 22:56:05 +00:00
|
|
|
export type Maybe<T> = T | undefined | null;
|
2021-10-14 19:22:01 +00:00
|
|
|
|
2021-09-22 18:36:13 +00:00
|
|
|
const stripePublicKey = process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY!;
|
|
|
|
let stripePromise: Promise<Stripe | null>;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This is a singleton to ensure we only instantiate Stripe once.
|
|
|
|
*/
|
|
|
|
const getStripe = (userPublicKey?: string) => {
|
|
|
|
if (!stripePromise) {
|
|
|
|
stripePromise = loadStripe(
|
|
|
|
userPublicKey || stripePublicKey /* , {
|
|
|
|
locale: "es-419" TODO: Handle multiple locales,
|
|
|
|
} */
|
|
|
|
);
|
|
|
|
}
|
|
|
|
return stripePromise;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default getStripe;
|