From 51a64f12006797f52d04d864f50ed2a2533df3f4 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 11 Jul 2026 12:58:08 +0000 Subject: [PATCH] Changes Co-authored-by: wolfoftyreso-debug <250630591+wolfoftyreso-debug@users.noreply.github.com> --- src/lib/stripe.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/lib/stripe.ts diff --git a/src/lib/stripe.ts b/src/lib/stripe.ts new file mode 100644 index 0000000..afec5f9 --- /dev/null +++ b/src/lib/stripe.ts @@ -0,0 +1,31 @@ +import { loadStripe, Stripe } from "@stripe/stripe-js"; + +export type StripeEnv = "sandbox" | "live"; + +const clientToken = import.meta.env.VITE_PAYMENTS_CLIENT_TOKEN as string | undefined; + +function paymentsEnvironment(): StripeEnv { + if (clientToken?.startsWith("pk_test_")) return "sandbox"; + if (clientToken?.startsWith("pk_live_")) return "live"; + throw new Error( + "Betalningar är inte konfigurerade för denna build. Slutför go-live i Payments-fliken för att aktivera skarpa betalningar." + ); +} + +let stripePromise: Promise | null = null; + +export function getStripe(): Promise { + if (!stripePromise) { + paymentsEnvironment(); + stripePromise = loadStripe(clientToken as string); + } + return stripePromise; +} + +export function getStripeEnvironment(): StripeEnv { + return paymentsEnvironment(); +} + +export function hasPaymentsConfigured(): boolean { + return !!clientToken && (clientToken.startsWith("pk_test_") || clientToken.startsWith("pk_live_")); +}