autumn-js
Version:
Autumn JS Library
113 lines (109 loc) • 2.79 kB
JavaScript
"use client";
import {
usePricingTableProvider
} from "./chunk-URAFNMTH.mjs";
import {
useCustomerProvider
} from "./chunk-PIIGEXKQ.mjs";
import {
useDialog
} from "./chunk-4QPHNIQ7.mjs";
import {
useEntityProvider
} from "./chunk-Q5SSQSDP.mjs";
import {
AutumnContext
} from "./chunk-ILWLFCTA.mjs";
// src/libraries/react/BaseAutumnProvider.tsx
import { useEffect, useState } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
function BaseAutumnProvider({
client,
children
}) {
const [components, setComponents] = useState({});
const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
const [
productChangeProps,
setProductChangeProps,
productChangeOpen,
setProductChangeOpen
] = useDialog(components.productChangeDialog);
const customerProvider = useCustomerProvider(client);
const entityProvider = useEntityProvider({ client });
const {
pricingTableProducts,
isLoading: pricingTableLoading,
error: pricingTableError,
refetch
} = usePricingTableProvider({
client
});
useEffect(() => {
customerProvider.refetch({
errorOnNotFound: false
});
}, []);
return /* @__PURE__ */ jsxs(
AutumnContext.Provider,
{
value: {
customerProvider,
entityProvider,
pricingTableProvider: {
pricingTableProducts,
isLoading: pricingTableLoading,
error: pricingTableError,
refetch
},
client,
paywallDialog: {
props: paywallProps,
setProps: setPaywallProps,
open: paywallOpen,
setOpen: setPaywallOpen,
setComponent: (component) => {
setComponents({
...components,
paywallDialog: component
});
}
},
prodChangeDialog: {
props: productChangeProps,
setProps: setProductChangeProps,
open: productChangeOpen,
setOpen: setProductChangeOpen,
setComponent: (component) => {
setComponents({
...components,
productChangeDialog: component
});
}
}
},
children: [
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
};