UNPKG

@whop/embedded-components-react-js

Version:

React components for Whop.js

56 lines (55 loc) 1.52 kB
"use client"; import "../chunk-NSSMTXJJ.mjs"; import React, { createContext, useContext, useEffect, useImperativeHandle, useMemo } from "react"; import { useElements } from "../provider.mjs"; const PayoutsSessionContext = createContext(null); function usePayoutsSession() { const ctx = useContext(PayoutsSessionContext); if (!ctx) { throw new Error("usePayoutsSession must be used within a PayoutsSessionProvider"); } return ctx.payoutsSession; } function PayoutsSession({ children, currency, companyId, token, redirectUrl, ref }) { const elements = useElements(); const payoutsSession = useMemo(()=>{ if (!elements) return null; return elements.createPayoutsSession({ token, currency, companyId, redirectUrl }); }, [ elements ]); useEffect(()=>{ if (!payoutsSession) return; payoutsSession.updateOptions({ token, currency, companyId, redirectUrl }); }, [ payoutsSession, currency, token, companyId, redirectUrl ]); const value = useMemo(()=>({ payoutsSession }), [ payoutsSession ]); useImperativeHandle(ref, ()=>({ payoutsSession }), [ payoutsSession ]); return React.createElement(PayoutsSessionContext.Provider, { value }, children); } export { PayoutsSession, usePayoutsSession };