All files / src/contexts CartSidebarModalContext.tsx

100% Statements 40/40
100% Branches 6/6
100% Functions 4/4
100% Lines 40/40

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 411x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 24x 24x 2x 2x 21x 21x 1x 1x 21x 21x 21x 7x 21x 21x 21x 4x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x  
"use client";
import React, { createContext, useContext, useState } from "react";
 
interface CartModalContextType {
  isCartModalOpen: boolean;
  openCartModal: () => void;
  closeCartModal: () => void;
}
 
const CartModalContext = createContext<CartModalContextType | undefined>(
  undefined
);
 
export const useCartModalContext = () => {
  const context = useContext(CartModalContext);
  if (!context) {
    throw new Error("useModalContext must be used within a ModalProvider");
  }
  return context;
};
 
export const CartModalProvider = ({ children }: { children: React.ReactNode }) => {
  const [isCartModalOpen, setIsCartModalOpen] = useState(false);
 
  const openCartModal = () => {
    setIsCartModalOpen(true);
  };
 
  const closeCartModal = () => {
    setIsCartModalOpen(false);
  };
 
  return (
    <CartModalContext.Provider
      value={{ isCartModalOpen, openCartModal, closeCartModal }}
    >
      {children}
    </CartModalContext.Provider>
  );
};