import { type Dispatch, type SetStateAction, createContext, useContext, } from "react"; /** * ========================= * DialogContext * ========================= */ export interface IDialogContext { opened: boolean; ids: { dialog: string; title: string; description: string; }; } export const initialDialogContext: IDialogContext = { opened: false, ids: { title: "", dialog: "", description: "" }, }; export const DialogContext = createContext< [IDialogContext, Dispatch>] >([ initialDialogContext, () => { if (process.env.NODE_ENV && process.env.NODE_ENV === "development") { console.warn( "It seems like you're using DialogContext outside of a provider.", ); } }, ]); export const useDialogContext = () => useContext(DialogContext); /** * =================== * InnerDialogContext * =================== */ export interface IInnerDialogContext { isMounted: boolean; isRendered: boolean; } export const initialInnerDialogContext: IInnerDialogContext = { isMounted: false, isRendered: false, }; export const InnerDialogContext = createContext( initialInnerDialogContext, ); export const useInnerDialogContext = () => useContext(InnerDialogContext);