UNPKG

@daimo/pay

Version:

Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.

36 lines (33 loc) 1.14 kB
import { jsx } from 'react/jsx-runtime'; import { createContext, useState, useMemo, useLayoutEffect } from 'react'; import { attachPaymentEffectHandlers } from '../payment/paymentEffects.js'; import { createPaymentStore } from '../payment/paymentStore.js'; import { createTrpcClient } from '../utils/trpc.js'; const PaymentContext = createContext(null); function PaymentProvider({ children, payApiUrl, log = console.log, debugMode = false }) { const [sessionId] = useState(() => crypto.randomUUID().replaceAll("-", "")); const trpc = useMemo(() => { return createTrpcClient(payApiUrl, sessionId); }, [payApiUrl, sessionId]); const store = useMemo(() => { return createPaymentStore(); }, []); useLayoutEffect(() => { const unsubscribe = attachPaymentEffectHandlers( store, trpc, log, debugMode ); log("[EFFECT] subscribed to payment effects"); return unsubscribe; }, [store, trpc, log, debugMode]); return /* @__PURE__ */ jsx(PaymentContext.Provider, { value: store, children }); } export { PaymentContext, PaymentProvider }; //# sourceMappingURL=PaymentProvider.js.map