36 lines
725 B
TypeScript
36 lines
725 B
TypeScript
import {
|
|
createContext,
|
|
Dispatch,
|
|
ReactNode,
|
|
SetStateAction,
|
|
useContext,
|
|
useState,
|
|
} from 'react'
|
|
|
|
export enum RightPanel {
|
|
PREVIEW,
|
|
}
|
|
const editorContext = createContext<{
|
|
rightPanel?: RightPanel
|
|
setRightPanel: Dispatch<SetStateAction<RightPanel | undefined>>
|
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
//@ts-ignore
|
|
}>({})
|
|
|
|
export const EditorContext = ({ children }: { children: ReactNode }) => {
|
|
const [rightPanel, setRightPanel] = useState<RightPanel>()
|
|
|
|
return (
|
|
<editorContext.Provider
|
|
value={{
|
|
rightPanel,
|
|
setRightPanel,
|
|
}}
|
|
>
|
|
{children}
|
|
</editorContext.Provider>
|
|
)
|
|
}
|
|
|
|
export const useEditor = () => useContext(editorContext)
|