UNPKG

@forbespro/lead-agent-hook

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