/ src / lib / context / modal-context.tsx
modal-context.tsx
 1  "use client"
 2  
 3  import React, { createContext, useContext } from "react"
 4  
 5  interface ModalContext {
 6    close: () => void
 7  }
 8  
 9  const ModalContext = createContext<ModalContext | null>(null)
10  
11  interface ModalProviderProps {
12    children?: React.ReactNode
13    close: () => void
14  }
15  
16  export const ModalProvider = ({ children, close }: ModalProviderProps) => {
17    return (
18      <ModalContext.Provider
19        value={{
20          close,
21        }}
22      >
23        {children}
24      </ModalContext.Provider>
25    )
26  }
27  
28  export const useModal = () => {
29    const context = useContext(ModalContext)
30    if (context === null) {
31      throw new Error("useModal must be used within a ModalProvider")
32    }
33    return context
34  }