'use client'; import { useState } from 'react'; import { EmbeddedCheckout, EmbeddedCheckoutProvider, } from '@stripe/react-stripe-js'; import { loadStripe } from '@stripe/stripe-js'; import { Dialog, DialogContent, DialogTitle } from '@kit/ui/dialog'; import { StripeClientEnvSchema } from '../schema/stripe-client-env.schema'; const { publishableKey } = StripeClientEnvSchema.parse({ publishableKey: process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, }); const stripePromise = loadStripe(publishableKey); export function StripeCheckout({ checkoutToken, onClose, }: React.PropsWithChildren<{ checkoutToken: string; onClose?: () => void; }>) { return ( ); } function EmbeddedCheckoutPopup({ onClose, children, }: React.PropsWithChildren<{ onClose?: () => void; }>) { const [open, setOpen] = useState(true); const className = `bg-white p-4 overflow-y-auto shadow-transparent border`; return ( { if (!open && onClose) { onClose(); } setOpen(open); }} > e.preventDefault()} onInteractOutside={(e) => e.preventDefault()} > Checkout
{children}
); }