Skip to main content
Glama
EditorEnabledContext.tsx1.42 kB
import { MessageKey } from '@intlayer/editor'; import { type Component, createContext, type ParentProps, useContext, } from 'solid-js'; import { useCrossFrameMessageListener } from './useCrossFrameMessageListener'; import { type CrossFrameStateOptions, useCrossFrameState, } from './useCrossFrameState'; export type EditorEnabledStateProps = { enabled: () => boolean; }; const EditorEnabledContext = createContext<EditorEnabledStateProps>({ enabled: () => false, }); export const useEditorEnabledState = (options?: CrossFrameStateOptions) => useCrossFrameState(MessageKey.INTLAYER_EDITOR_ENABLED, false, options); export const usePostEditorEnabledState = <S,>( onEventTriggered?: (data: S) => void ) => useCrossFrameMessageListener( `${MessageKey.INTLAYER_EDITOR_ENABLED}/post`, onEventTriggered ); export const useGetEditorEnabledState = <S,>( onEventTriggered?: (data: S) => void ) => useCrossFrameMessageListener( `${MessageKey.INTLAYER_EDITOR_ENABLED}/get`, onEventTriggered ); export const EditorEnabledProvider: Component<ParentProps> = (props) => { const [isEnabled] = useEditorEnabledState({ emit: false, receive: true, }); return ( <EditorEnabledContext.Provider value={{ enabled: isEnabled }}> {props.children} </EditorEnabledContext.Provider> ); }; export const useEditorEnabled = () => useContext(EditorEnabledContext);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aymericzip/intlayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server