autumn-js
Version:
Autumn JS Library
100 lines (96 loc) • 2.52 kB
JavaScript
"use client";
import {
useDialog
} from "./chunk-RFSQBGLO.mjs";
import {
useCustomerBase
} from "./chunk-Q6IDGKH3.mjs";
// src/libraries/react/BaseAutumnProvider.tsx
import { useRef, useState } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
function BaseAutumnProvider({
client,
children,
AutumnContext
}) {
const [components, setComponents] = useState({});
const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
const [
productChangeProps,
setProductChangeProps,
productChangeOpen,
setProductChangeOpen
] = useDialog(components.productChangeDialog);
useCustomerBase({
client,
params: { errorOnNotFound: false }
});
const paywallRef = useRef(null);
const [refresh, setRefresh] = useState(0);
return /* @__PURE__ */ jsxs(
AutumnContext.Provider,
{
value: {
initialized: true,
client,
paywallDialog: {
props: paywallProps,
setProps: setPaywallProps,
open: paywallOpen,
setOpen: setPaywallOpen,
setComponent: (component) => {
setComponents({
...components,
paywallDialog: component
});
}
},
attachDialog: {
props: productChangeProps,
setProps: setProductChangeProps,
open: productChangeOpen,
setOpen: setProductChangeOpen,
setComponent: (component) => {
setComponents({
...components,
productChangeDialog: component
});
}
},
paywallRef,
refresh,
setRefresh
},
children: [
paywallRef.current && /* @__PURE__ */ jsx(
paywallRef.current.component,
{
open: paywallRef.current.open,
setOpen: paywallRef.current.setOpen,
...paywallRef.current.props
}
),
components.paywallDialog && /* @__PURE__ */ jsx(
components.paywallDialog,
{
open: paywallOpen,
setOpen: setPaywallOpen,
...paywallProps
}
),
components.productChangeDialog && /* @__PURE__ */ jsx(
components.productChangeDialog,
{
open: productChangeOpen,
setOpen: setProductChangeOpen,
...productChangeProps
}
),
children
]
}
);
}
export {
BaseAutumnProvider
};