UNPKG

@forbespro/lead-agent-hook

Version:
52 lines (47 loc) 1.63 kB
'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const jsxRuntime = require('react/jsx-runtime'); const react = require('react'); const LeadAgentContext = react.createContext(void 0); LeadAgentContext.displayName = "LeadAgentContext"; const LeadAgentProvider = function LeadAgentProvider2({ children, defaultOpen = false }) { const [isOpen, setIsOpen] = react.useState(defaultOpen); const [productState, setProductState] = react.useState({ sku: null, open: false }); const openProduct = react.useCallback((sku) => { setProductState({ sku, open: true }); setIsOpen(true); }, []); const closeProduct = react.useCallback(() => { setProductState((prev) => ({ ...prev, open: false })); }, []); const openChat = react.useCallback(() => setIsOpen(true), []); const closeChat = react.useCallback(() => setIsOpen(false), []); const toggleChat = react.useCallback(() => setIsOpen(!isOpen), [isOpen]); return /* @__PURE__ */ jsxRuntime.jsx(LeadAgentContext.Provider, { value: { isOpen, openChat, closeChat, toggleChat, product: productState, openProduct, closeProduct }, children }); }; LeadAgentProvider.displayName = "LeadAgentProvider"; function useLeadAgent() { const context = react.useContext(LeadAgentContext); if (context === void 0) { throw new Error("useLeadAgent must be used within a LeadAgentProvider"); } return context; } exports.LeadAgentContext = LeadAgentContext; exports.LeadAgentProvider = LeadAgentProvider; exports.useLeadAgent = useLeadAgent; //# sourceMappingURL=use-lead-agent.js.map