UNPKG

autumn-js

Version:

Autumn JS Library

113 lines (109 loc) 2.79 kB
"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 };