diff --git a/packages/live-preview/src/index.ts b/packages/live-preview/src/index.ts index 3ed8d7a08..ebfa97673 100644 --- a/packages/live-preview/src/index.ts +++ b/packages/live-preview/src/index.ts @@ -1,4 +1,5 @@ export { handleMessage } from './handleMessage' export { mergeData } from './mergeData' +export { ready } from './ready' export { subscribe } from './subscribe' export { unsubscribe } from './unsubscribe' diff --git a/packages/live-preview/src/ready.ts b/packages/live-preview/src/ready.ts new file mode 100644 index 000000000..61e1d7306 --- /dev/null +++ b/packages/live-preview/src/ready.ts @@ -0,0 +1,15 @@ +export const ready = (args: { serverURL: string }): void => { + const { serverURL } = args + + if (typeof window !== 'undefined') { + // This subscription may have been from either an iframe `src` or `window.open()` + // i.e. `window?.opener` || `window?.parent` + window?.opener?.postMessage( + JSON.stringify({ + popupReady: true, + type: 'payload-live-preview', + }), + serverURL, + ) + } +} diff --git a/packages/live-preview/src/subscribe.ts b/packages/live-preview/src/subscribe.ts index d235e6761..407a9244b 100644 --- a/packages/live-preview/src/subscribe.ts +++ b/packages/live-preview/src/subscribe.ts @@ -15,17 +15,6 @@ export const subscribe = (args: { if (typeof window !== 'undefined') { window.addEventListener('message', onMessage) - - // This subscription may have been from either an iframe `src` or `window.open()` - // i.e. `window?.opener` || `window?.parent` - - window?.opener?.postMessage( - JSON.stringify({ - popupReady: true, - type: 'payload-live-preview', - }), - serverURL, - ) } return onMessage