@whop/embedded-components-react-js
Version:
React components for Whop.js
56 lines (55 loc) • 1.52 kB
JavaScript
"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 };