Skip to main content
Glama
useIframeClickInterceptor.ts1.27 kB
import { MessageKey, mergeIframeClick } from '@intlayer/editor'; import { onDestroy, onMount } from 'svelte'; import { useCrossFrameMessageListener } from './useCrossFrameMessageListener'; export const useIframeClickInterceptor = () => { const postMessage = useCrossFrameMessageListener<undefined>( MessageKey.INTLAYER_IFRAME_CLICKED ); const handler = () => { postMessage(); }; onMount(() => { if (typeof window !== 'undefined') { window.addEventListener('mousedown', handler); } }); onDestroy(() => { if (typeof window !== 'undefined') { window.removeEventListener('mousedown', handler); } }); }; export const useIframeClickMerger = () => { useIframeClickInterceptor(); useCrossFrameMessageListener<MessageEvent>( MessageKey.INTLAYER_IFRAME_CLICKED, (data) => { // mergeIframeClick(data); // mergeIframeClick expects an event, but data might be stripped? // Actually mergeIframeClick logic in editor package probably dispatches a custom event or similar. // The Vue implementation passes `mergeIframeClick` directly as the callback. // Let's assume mergeIframeClick handles whatever data is passed, or we wrap it if needed. mergeIframeClick(data as any); } ); };

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