Files
examjam-frontend/context/ModalContext.tsx

25 lines
633 B
TypeScript

"use client";
import { createContext, useContext, useState } from "react";
const ModalContext = createContext(null);
export function ModalProvider({ children }) {
const [isOpen, setIsOpen] = useState(false);
const open = () => setIsOpen(true);
const close = () => setIsOpen(false);
const toggle = () => setIsOpen((prev) => !prev);
return (
<ModalContext.Provider value={{ isOpen, open, close, toggle }}>
{children}
</ModalContext.Provider>
);
}
export function useModal() {
const ctx = useContext(ModalContext);
if (!ctx) throw new Error("useModal must be inside <ModalProvider>");
return ctx;
}