Move index to /terminal
This commit is contained in:
18
components/Terminal/contexts/ModalFunctions.tsx
Normal file
18
components/Terminal/contexts/ModalFunctions.tsx
Normal file
@ -0,0 +1,18 @@
|
||||
import { createContext, useContext } from "react";
|
||||
import type { PropsWithChildren } from "react";
|
||||
import type { Project, Diary } from "../../lib/content/types";
|
||||
|
||||
interface ModalFunctions {
|
||||
setVisible?: CallableFunction;
|
||||
setContent?: (content: Project| Diary) => void;
|
||||
setHtml?: (html: any) => void;
|
||||
onContentReady?: () => void;
|
||||
}
|
||||
|
||||
const modalFunctions: ModalFunctions = {};
|
||||
const ModalContext = createContext(modalFunctions);
|
||||
const updateCallbacks = (callbacks: ModalFunctions) => Object.assign(modalFunctions, callbacks);
|
||||
const useModalFunctions = () => ({modalFunctions: useContext(ModalContext), updateCallbacks});
|
||||
const ModalFunctionProvider = (props: PropsWithChildren<{}>) => <ModalContext.Provider value={modalFunctions} {...props} />;
|
||||
|
||||
export { ModalFunctionProvider, useModalFunctions };
|
Reference in New Issue
Block a user