Skip to content

Commit 62321c7

Browse files
committed
fix: trigger postMessage when changed while already showing iframePreview
1 parent af14bcd commit 62321c7

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

packages/webui/src/client/ui/PreviewPopUp/Previews/IFramePreview.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ export function IFramePreview({ content }: IFramePreviewProps): React.ReactEleme
1717

1818
const onLoadListener = useCallback(() => {
1919
if (content.postMessage) {
20-
const url = new URL(content.href)
21-
iFrameElement.current?.contentWindow?.postMessage(content.postMessage, url.origin)
20+
// use * as URL reference to avoid cors when posting message with new reference:
21+
iFrameElement.current?.contentWindow?.postMessage(content.postMessage, '*')
2222
}
2323
}, [content.postMessage, content.href])
2424

@@ -31,6 +31,14 @@ export function IFramePreview({ content }: IFramePreviewProps): React.ReactEleme
3131
return () => currentIFrame.removeEventListener('load', onLoadListener)
3232
}, [onLoadListener])
3333

34+
// Handle postMessage updates when iframe is already loaded
35+
useEffect(() => {
36+
if (content.postMessage && iFrameElement.current?.contentWindow) {
37+
// use * as URL reference to avoid cors when posting message with new reference:
38+
iFrameElement.current.contentWindow.postMessage(content.postMessage, '*')
39+
}
40+
}, [content.postMessage, content.href])
41+
3442
const style: Record<string, string | number> = {}
3543
if (content.dimensions) {
3644
style['--preview-render-width'] = content.dimensions.width

0 commit comments

Comments
 (0)