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 }