{"version":3,"file":"fe6908c2.js","sources":["../../../src/components/globals/cart/CartUIProvider.client.tsx"],"sourcesContent":["import React, {\n useState,\n useMemo,\n useCallback,\n useContext,\n createContext,\n} from 'react';\n\ninterface ICartContext {\n isCartOpen?: boolean;\n openCart: any;\n closeCart: any;\n toggleCart: any;\n isShipAloneModalOpen?: boolean;\n openShipAloneModal: any;\n closeShipAloneModal: any;\n}\n\nexport const CartContext = createContext(\n null as unknown as ICartContext,\n);\n\n/**\n * A client component that defines the behavior that occurs when a user is interacting with a cart (for example, opening or closing it)\n */\ninterface ICartUIProvider {\n children?: React.ReactNode;\n}\n\nexport function CartUIProvider({children}: ICartUIProvider): JSX.Element {\n const [open, setOpen] = useState(false);\n const [shipAloneModalOpen, setShipAloneModalOpen] = useState(false);\n\n const toggleBodyClass = (addClass: boolean) => {\n if (addClass) {\n document?.body?.classList.add('overflow-hidden');\n } else {\n document?.body?.classList.remove('overflow-hidden');\n }\n };\n\n const openCart = useCallback(() => {\n toggleBodyClass(true);\n setOpen(true);\n }, [setOpen]);\n\n const closeCart = useCallback(() => {\n toggleBodyClass(false);\n setOpen(false);\n }, [setOpen]);\n\n const toggleCart = useCallback(() => {\n toggleBodyClass(!open);\n setOpen(!open);\n }, [setOpen, open]);\n\n const openShipAloneModal = useCallback(() => {\n setShipAloneModalOpen(true);\n }, [setShipAloneModalOpen]);\n\n const closeShipAloneModal = useCallback(() => {\n setShipAloneModalOpen(false);\n }, [setShipAloneModalOpen]);\n\n const contextValue = useMemo(() => {\n return {\n isCartOpen: open,\n isShipAloneModalOpen: shipAloneModalOpen,\n openCart,\n closeCart,\n toggleCart,\n openShipAloneModal,\n closeShipAloneModal,\n };\n }, [\n open,\n openCart,\n closeCart,\n toggleCart,\n shipAloneModalOpen,\n openShipAloneModal,\n closeShipAloneModal,\n ]);\n\n return (\n {children}\n );\n}\n\nexport function useCartUI() {\n return useContext(CartContext) || {};\n}\n"],"names":["CartContext","createContext","CartUIProvider","children","open","setOpen","useState","shipAloneModalOpen","setShipAloneModalOpen","toggleBodyClass","addClass","body","classList","add","remove","openCart","useCallback","closeCart","toggleCart","openShipAloneModal","closeShipAloneModal","contextValue","useMemo","isCartOpen","isShipAloneModalOpen","_jsx","useCartUI","useContext"],"mappings":"+CAkBaA,MAAAA,EAAcC,wBACrB,IACL,EASM,SAASC,EAAe,CAACC,SAAAA,CAAyB,EAAgB,CACvE,KAAM,CAACC,EAAMC,CAAO,EAAIC,mBAAkB,EAAK,EACzC,CAACC,EAAoBC,CAAqB,EAAIF,mBAAkB,EAAK,EAErEG,EAAmBC,GAAsB,SACzCA,GACQC,EAAAA,+BAAAA,OAAAA,MAAAA,EAAMC,UAAUC,IAAI,oBAEpBF,EAAAA,+BAAAA,OAAAA,MAAAA,EAAMC,UAAUE,OAAO,kBACnC,EAGIC,EAAWC,EAAAA,QAAAA,YAAY,IAAM,CACjCP,EAAgB,EAAI,EACpBJ,EAAQ,EAAI,CAAA,EACX,CAACA,CAAO,CAAC,EAENY,EAAYD,EAAAA,QAAAA,YAAY,IAAM,CAClCP,EAAgB,EAAK,EACrBJ,EAAQ,EAAK,CAAA,EACZ,CAACA,CAAO,CAAC,EAENa,EAAaF,EAAAA,QAAAA,YAAY,IAAM,CACnCP,EAAgB,CAACL,CAAI,EACrBC,EAAQ,CAACD,CAAI,CAAA,EACZ,CAACC,EAASD,CAAI,CAAC,EAEZe,EAAqBH,EAAAA,QAAAA,YAAY,IAAM,CAC3CR,EAAsB,EAAI,CAAA,EACzB,CAACA,CAAqB,CAAC,EAEpBY,EAAsBJ,EAAAA,QAAAA,YAAY,IAAM,CAC5CR,EAAsB,EAAK,CAAA,EAC1B,CAACA,CAAqB,CAAC,EAEpBa,EAAeC,EAAAA,QAAAA,QAAQ,KACpB,CACLC,WAAYnB,EACZoB,qBAAsBjB,EACtBQ,SAAAA,EACAE,UAAAA,EACAC,WAAAA,EACAC,mBAAAA,EACAC,oBAAAA,CAAAA,GAED,CACDhB,EACAW,EACAE,EACAC,EACAX,EACAY,EACAC,CAAmB,CACpB,EAGC,OAAAK,EAACzB,EAAY,SAAQ,CAAC,MAAOqB,EAAa,SAAAlB,CAAA,CAAkC,CAEhF,CAEO,SAASuB,GAAY,CACnBC,OAAAA,EAAAA,QAAAA,WAAW3B,CAAW,GAAK,EACpC"}